An interruption-free notification system for Linux

Overview

nofi

A Rofi-driven notification manager

GitHub Release Crate Release Continuous Integration Continuous Deployment Documentation

rofi.mp4

nofi is a distraction-free notification center. While most notification daemons make immediate popups a key function, nofi is designed with such functionality as an anti-feature: notifications are intended to be viewed, but not to annoy. Notifications can be viewed at the user's discretion by launching nofi's Rofi-driven notification manager.

nofi is a server implementation of freedesktop.org - Desktop Notifications Specification and it can be used to receive notifications from applications via D-Bus.

The name?

A portmanteau of "notification" and Rofi.

Features

  • Template-powered (Jinja2/Django) notification text.
  • Run custom OS commands based on the matched notifications.

Installation

From crates.io

nofi can be installed from crates.io:

$ cargo install nofi

The minimum supported Rust version is 1.64.0.

Arch Linux

nofi can be installed from the AUR using an AUR helper. For example:

aura -A nofi-bin

Binary releases

See the available binaries for different operating systems/architectures from the releases page.

Build from source

Prerequisites

Instructions

  1. Clone the repository.
$ git clone https://github.com/ellsclytn/nofi && cd nofi/
  1. Build.
$ CARGO_TARGET_DIR=target cargo build --release

Binary will be located at target/release/nofi.

Usage

On Xorg startup

You can use xinitrc or xprofile for autostarting nofi.

xinitrc

If you are starting Xorg manually with xinit, you can nofi on X server startup via xinitrc:

$HOME/.xinitrc:

nofi &

Long-running programs such as notification daemons should be started before the window manager, so they should either fork themself or be run in the background via appending & sign. Otherwise, the script would halt and wait for each program to exit before executing the window manager or desktop environment.

In the case of nofi not being available since it's started at a faster manner than the window manager, you can add a delay as shown in the example below:

{ sleep 2; nofi; } &

xprofile

If you are using a display manager, you can utilize an xprofile file which allows you to execute commands at the beginning of the X user session.

The xprofile file, which is ~/.xprofile or /etc/xprofile, can be styled similarly to xinitrc.

As a D-Bus service

You can create a D-Bus service to launch nofi automatically on the first notification action. For example, you can create the following service configuration:

/usr/share/dbus-1/services/org.ellsclytn.nofi.service:

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/bin/nofi

Whenever an application sends a notification by sending a signal to org.freedesktop.Notifications, D-Bus activates nofi.

As a systemd service

~/.config/systemd/user/nofi.service:

[Unit]
Description=Nofi notification daemon
Documentation=man:nofi(1)
PartOf=graphical-session.target

[Service]
Type=dbus
BusName=org.freedesktop.Notifications
ExecStart=/usr/bin/nofi

You may then reload systemd and start/enable the service:

systemctl --user daemon-reload
systemctl --user start nofi.service

Usage

nofi uses dbus-send(1) to receive control instructions. There is currently only one instruction: viewing notification history.

# show the last notification
dbus-send --print-reply \
          --dest=org.freedesktop.Notifications \
          /org/freedesktop/Notifications/ctl \
          org.freedesktop.Notifications.History

An example use-case of this is to bind this to a key in your window manager, such as i3:

bindsym $mod+grave exec dbus-send --print-reply \
        --dest=org.freedesktop.Notifications /org/freedesktop/Notifications/ctl org.freedesktop.Notifications.History

Status Bar Integration

nofi broadcasts notification counts over a UNIX socket in the same format as Rofication. This means it can be integrated into status bars like i3status-rust via the Rofication block. The socket path follows the XDG Base Directory specification which usually exposes the socket at /run/user/<UID>/nofi/socket. This may vary between systems, so the socket path is output to stdout when nofi starts.

# Example i3status-rust integration

[[block]]
block = "rofication"
interval = 1
socket_path = "/run/user/1000/nofi/socket"

Configuration

nofi configuration file supports TOML format and the default configuration values can be found here.

Configuration overrides can be placed in $HOME/.config/nofi/nofi.toml, or at a path of your choosing by specifying a NOFI_CONFIG environment variable.

Global configuration

log_verbosity

Sets the logging verbosity. Possible values are error, warn, info, debug and trace.

template

Sets the template for the notification message. The syntax is based on Jinja2 and Django templates.

Simply, there are 3 kinds of delimiters:

  • {{ and }} for expressions
  • {% or {%- and %} or -%} for statements
  • {# and #} for comments

See Tera documentation for more information about control structures, built-in filters, etc.

Context

Context is the model that holds the required data for template rendering. The JSON format is used in the following example for the representation of a context.

{
  "app_name": "nofi",
  "summary": "example",
  "body": "this is a notification 🦑",
  "urgency": "normal",
  "unread_count": 1,
  "timestamp": 1672426610
}

Urgency configuration

There are 3 levels of urgency defined in the Freedesktop specification and they define the importance of the notification.

  1. low: e.g. "joe signed on"
  2. normal: e.g. "you got mail"
  3. critical: e.g. "your computer is on fire!"

You can configure nofi to act differently based on these urgency levels. For this, there need to be 3 different sections defined in the configuration file. Each of these sections has the following fields:

[urgency_{level}] # urgency_low, urgency_normal or urgency_critical
    custom_commands = []

custom_commands

With using this option, you can run custom OS commands based on urgency levels and the notification contents. The basic usage is the following:

custom_commands = [
    { command = 'echo "{{app_name}} {{summary}} {{body}}"' } # echoes the notification to stdout
]

As shown in the example above, you can specify an arbitrary command via command which is also processed through the template engine. This means that you can use the same template context.

The filtering is done by matching the fields in JSON via using filter along with the command. For example, if you want to play a custom notification sound for a certain application:

custom_commands = [
  { filter = '{ "app_name":"notify-send" }', command = 'aplay notification.wav' },
  { filter = '{ "app_name":"weechat" }', command = 'aplay irc.wav' }
]

The JSON filter can have the following fields:

  • app_name: Name of the application that sends the notification.
  • summary: Summary of the notification.
  • body: Body of the notification.

Each of these fields is matched using regex and you can combine them as follows:

custom_commands = [
  { filter = '{ "app_name":"telegram|discord|.*chat$","body":"^hello.*" }', command = 'gotify push -t "{{app_name}}" "someone said hi!"' }
]

In this hypothetical example, we are sending a Gotify notification when someone says hi to us in any chatting application matched by the regex.

Related Projects

License

Licensed under either of Apache License Version 2.0 or The MIT License at your option.

Copyright

Copyright Β© 2023, Ellis Clayton

Comments
  • chore(deps): bump serde from 1.0.171 to 1.0.174

    chore(deps): bump serde from 1.0.171 to 1.0.174

    Bumps serde from 1.0.171 to 1.0.174.

    Release notes

    Sourced from serde's releases.

    v1.0.174

    • Documentation improvements

    v1.0.173

    • Fix missing trait implementations when using serde derive macro on a macro-generated data structure, such as via the bitflags crate (#2516)

    v1.0.172

    • Experiment with precompiling the serde_derive macros to reduce build time (#2514)
    Commits
    • 22be673 Release 1.0.174
    • 166c89f Opt in to generate-link-to-definition when building on docs.rs
    • 6e0b13e Release 1.0.173
    • 7e8f978 Handle $crate special case
    • 6c0e838 Always consider empty output to be unsuccessful
    • d3da419 Enable full expression parsing for precompiled serde_derive
    • 425a4b7 Check precompiled subprocess exit status
    • 63c65ef Release 1.0.172
    • e838b0b Release 1.0.172-alpha.0
    • 041e99c Implement fallback to compiling serde_derive from source
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump thiserror from 1.0.43 to 1.0.44

    chore(deps): bump thiserror from 1.0.43 to 1.0.44

    Bumps thiserror from 1.0.43 to 1.0.44.

    Release notes

    Sourced from thiserror's releases.

    1.0.44

    • Documentation improvements
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde from 1.0.171 to 1.0.173

    chore(deps): bump serde from 1.0.171 to 1.0.173

    Bumps serde from 1.0.171 to 1.0.173.

    Release notes

    Sourced from serde's releases.

    v1.0.173

    • Fix missing trait implementations when using serde derive macro on a macro-generated data structure, such as via the bitflags crate (#2516)

    v1.0.172

    • Experiment with precompiling the serde_derive macros to reduce build time (#2514)
    Commits
    • 6e0b13e Release 1.0.173
    • 7e8f978 Handle $crate special case
    • 6c0e838 Always consider empty output to be unsuccessful
    • d3da419 Enable full expression parsing for precompiled serde_derive
    • 425a4b7 Check precompiled subprocess exit status
    • 63c65ef Release 1.0.172
    • e838b0b Release 1.0.172-alpha.0
    • 041e99c Implement fallback to compiling serde_derive from source
    • 07dcc4f Remove unneeded 'include' Cargo.toml entries
    • b88052d Rearrange precompiled directory
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde_json from 1.0.102 to 1.0.103

    chore(deps): bump serde_json from 1.0.102 to 1.0.103

    Bumps serde_json from 1.0.102 to 1.0.103.

    Release notes

    Sourced from serde_json's releases.

    v1.0.103

    • Documentation improvements
    Commits
    • 54bcb4d Release 1.0.103
    • 9c2879a Opt in to generate-link-to-definition when building on docs.rs
    • d1a07e2 Fix rustdoc::bare_urls lint in lexical code
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde_json from 1.0.99 to 1.0.102

    chore(deps): bump serde_json from 1.0.99 to 1.0.102

    Bumps serde_json from 1.0.99 to 1.0.102.

    Release notes

    Sourced from serde_json's releases.

    v1.0.102

    • Add a way to customize the serialization of byte arrays (#1039)

    v1.0.101

    v1.0.100

    • Support -Z minimal-versions
    Commits
    • 658689d Release 1.0.102
    • 42dbd00 Merge pull request #1039 from dtolnay/writebytearray
    • a1ca32a Factor out byte array serialization to a new Formatter method
    • 857b010 Inline Serializer::serialize_u8 into serialize_bytes
    • 6ad5495 Inline u8::serialize into serialize_bytes
    • 44b4a6c Simplify serialize_bytes
    • 0e2c949 Inline SerializeSeq::end into serialize_bytes
    • 1b72f2b Inline SerializeSeq::serialize_element into serialize_bytes
    • 55a7f5c Inline Serializer::serialize_seq into serialize_bytes
    • 3ddda75 Format PR 1037 with rustfmt
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde from 1.0.164 to 1.0.171

    chore(deps): bump serde from 1.0.164 to 1.0.171

    Bumps serde from 1.0.164 to 1.0.171.

    Release notes

    Sourced from serde's releases.

    v1.0.171

    v1.0.170

    • Produce error message on suffixed string literals inside serde attributes (#2242)
    • Support single identifier as unbraced default value for const generic parameter (#2449)

    v1.0.169

    • Add Deserializer::deserialize_identifier support for adjacently tagged enums (#2475, thanks @​Baptistemontan)
    • Fix unused_braces lint in generated Deserialize impl that uses braced const generic expressions (#2414)

    v1.0.168

    • Allow serde::de::IgnoredAny to be the type for a serde(flatten) field (#2436, thanks @​Mingun)
    • Allow larger preallocated capacity for smaller elements (#2494)

    v1.0.167

    • Add serialize and deserialize impls for RangeFrom and RangeTo (#2471, thanks @​tbu-)

    v1.0.166

    • Add no-alloc category to crates.io metadata

    v1.0.165

    • Fix incorrect count of fields passed to tuple deserialization methods when using serde(skip_deserializing) attributes (#2466, thanks @​Mingun)
    • Fix -Zminimal-versions build
    Commits
    • 03da66c Release 1.0.171
    • f75426f Inline visitor_expr of unit struct deserialize impl
    • 662fc38 Add test of const-generic unit struct where-clause edge case
    • 28c1002 Merge pull request #2500 from Baptistemontan/derive_generic_unit_struct
    • 89c8d85 allow Deserialize derive to handle generic unit structs
    • 6502838 Release 1.0.170
    • c93a0f3 Merge pull request #2499 from dtolnay/strsuffix
    • 8264e00 Reject suffixed string literals inside serde attrs
    • 117ef22 Add ui test with suffixed string literals in attribute
    • 3fb5e71 Release 1.0.169
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde from 1.0.164 to 1.0.167

    chore(deps): bump serde from 1.0.164 to 1.0.167

    Bumps serde from 1.0.164 to 1.0.167.

    Release notes

    Sourced from serde's releases.

    v1.0.167

    • Add serialize and deserialize impls for RangeFrom and RangeTo (#2471, thanks @​tbu-)

    v1.0.166

    • Add no-alloc category to crates.io metadata

    v1.0.165

    • Fix incorrect count of fields passed to tuple deserialization methods when using serde(skip_deserializing) attributes (#2466, thanks @​Mingun)
    • Fix -Zminimal-versions build
    Commits
    • 807bd20 Release 1.0.167
    • ed9a140 Merge pull request #2444 from Mingun/dedup
    • 2de7c2b Resolve redundant_static_lifetimes clippy lint from PR 2471
    • e6a4a37 Delete unuseful RangeFull impls
    • 0fca04e Merge pull request 2471 from tbu-/pr_more_ranges
    • 92bfc8d Merge pull request #2290 from Mingun/enum-tests-and-cleanup
    • fa0312a More formatting of doc tests and example code
    • 1920b69 Declare required automod dev-dependency
    • 3bfd41d Format doctests using rustfmt's format_code_in_doc_comments
    • 290449f Fix doc tests to work whether or not serde derive feature is used
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump regex from 1.8.4 to 1.9.1

    chore(deps): bump regex from 1.8.4 to 1.9.1

    Bumps regex from 1.8.4 to 1.9.1.

    Changelog

    Sourced from regex's changelog.

    1.9.1 (2023-07-07)

    This is a patch release which fixes a memory usage regression. In the regex 1.9 release, one of the internal engines used a more aggressive allocation strategy than what was done previously. This patch release reverts to the prior on-demand strategy.

    Bug fixes:

    1.9.0 (2023-07-05)

    This release marks the end of a years long rewrite of the regex crate internals. Since this is such a big release, please report any issues or regressions you find. We would also love to hear about improvements as well.

    In addition to many internal improvements that should hopefully result in "my regex searches are faster," there have also been a few API additions:

    • A new Captures::extract method for quickly accessing the substrings that match each capture group in a regex.
    • A new inline flag, R, which enables CRLF mode. This makes . match any Unicode scalar value except for \r and \n, and also makes (?m:^) and (?m:$) match after and before both \r and \n, respectively, but never between a \r and \n.
    • RegexBuilder::line_terminator was added to further customize the line terminator used by (?m:^) and (?m:$) to be any arbitrary byte.
    • The std Cargo feature is now actually optional. That is, the regex crate can be used without the standard library.
    • Because regex 1.9 may make binary size and compile times even worse, a new experimental crate called regex-lite has been published. It prioritizes binary size and compile times over functionality (like Unicode) and performance. It shares no code with the regex crate.

    New features:

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump thiserror from 1.0.40 to 1.0.43

    chore(deps): bump thiserror from 1.0.40 to 1.0.43

    Bumps thiserror from 1.0.40 to 1.0.43.

    Release notes

    Sourced from thiserror's releases.

    1.0.42

    • Fix compile error in derived Display impl if there was a nonstandard write! macro in scope (#239)

    1.0.41

    No release notes provided.

    Commits
    • 225adab Release 1.0.43
    • f6dc5e5 Merge pull request #242 from dtolnay/stdwrite
    • cab9fec Avoid calling a nonstandard write! macro that might be in scope
    • 900f018 Revert "Avoid calling a nonstandard write! macro that might be in scope"
    • 305be4a Release 1.0.42
    • 6165f58 Merge pull request #240 from dtolnay/stdwrite
    • 264b7d1 Avoid calling a nonstandard write! macro that might be in scope
    • 43f3a2a Update to 2021 edition
    • 281997e Release 1.0.41
    • c28f8fa Eliminate syn 1 from minimal-versions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump toml from 0.7.5 to 0.7.6

    chore(deps): bump toml from 0.7.5 to 0.7.6

    Bumps toml from 0.7.5 to 0.7.6.

    Commits
    • 59ae12d chore: Release
    • 501bbcd docs: Update changelog
    • c2a36b0 Merge pull request #576 from marcospb19/toml-edit-add-retain-method-to-collec...
    • 4b2d3c9 toml_edit: add retain to arrays and tables
    • bb108a8 feat(toml): add Map::retain method (#575)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump regex from 1.8.4 to 1.9.0

    chore(deps): bump regex from 1.8.4 to 1.9.0

    Bumps regex from 1.8.4 to 1.9.0.

    Changelog

    Sourced from regex's changelog.

    1.9.0 (2023-07-05)

    This release marks the end of a years long rewrite of the regex crate internals. Since this is such a big release, please report any issues or regressions you find. We would also love to hear about improvements as well.

    In addition to many internal improvements that should hopefully result in "my regex searches are faster," there have also been a few API additions:

    • A new Captures::extract method for quickly accessing the substrings that match each capture group in a regex.
    • A new inline flag, R, which enables CRLF mode. This makes . match any Unicode scalar value except for \r and \n, and also makes (?m:^) and (?m:$) match after and before both \r and \n, respectively, but never between a \r and \n.
    • RegexBuilder::line_terminator was added to further customize the line terminator used by (?m:^) and (?m:$) to be any arbitrary byte.
    • The std Cargo feature is now actually optional. That is, the regex crate can be used without the standard library.
    • Because regex 1.9 may make binary size and compile times even worse, a new experimental crate called regex-lite has been published. It prioritizes binary size and compile times over functionality (like Unicode) and performance. It shares no code with the regex crate.

    New features:

    Performance improvements:

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • chore(deps): bump serde from 1.0.174 to 1.0.175

    chore(deps): bump serde from 1.0.174 to 1.0.175

    Bumps serde from 1.0.174 to 1.0.175.

    Release notes

    Sourced from serde's releases.

    v1.0.175

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): bump xdg from 2.5.0 to 2.5.2

    chore(deps): bump xdg from 2.5.0 to 2.5.2

    Bumps xdg from 2.5.0 to 2.5.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Releases(v0.2.3)
  • v0.2.3(Jul 23, 2023)

  • v0.2.2(Jul 15, 2023)

    [0.2.2] - 2023-07-15

    πŸ› Bug Fixes

    • (socket) Fix Rofi blocking socket updates

    πŸ“š Documentation

    • (readme) Add Arch Linux installation instructions

    βš™οΈ Miscellaneous Tasks

    • (deps) Bump rust-embed from 6.7.0 to 6.8.1
    • (deps) Bump toml from 0.7.5 to 0.7.6
    • (deps) Bump regex from 1.8.4 to 1.9.1
    • (deps) Bump thiserror from 1.0.40 to 1.0.43
    • (deps) Bump serde from 1.0.164 to 1.0.171
    • (deps) Bump serde_json from 1.0.99 to 1.0.102
    Source code(tar.gz)
    Source code(zip)
    nofi-0.2.2-x86_64-unknown-linux-gnu.tar.gz(2.72 MB)
    nofi-0.2.2-x86_64-unknown-linux-gnu.tar.gz.sha512(173 bytes)
  • v0.2.1(Jul 14, 2023)

  • v0.2.0(Jul 4, 2023)

  • v0.1.0(Jul 1, 2023)

    [0.1.0] - 2023-07-01

    πŸš€ Features

    • (app) Support expiring notifications
    • (app) Add logging via tracing
    • (app) Support showing a startup notification
    • (cairo) Show the notification summary
    • (command) Support filtering by the notification message
    • (config) Add a configuration file to specify geometry
    • (config) Support configuring the window based on notification urgency
    • (config) Support changing the format of the message
    • (config) Allow setting a custom text for urgency
    • (config) Allow running custom OS commands based on urgency
    • (config) Support global locations for the config file
    • (config) Embed the default configuration into binary
    • (config) Switch to Tera for more robust template rendering
    • (config) Make log verbosity configurable
    • (config) Support having a default value for urgency text
    • (dbus) Parse notifications from D-Bus messages
    • (dbus) Register the notification listener as a server
    • (dbus) Send close notification signal on button press
    • (dbus) Designate an ID for notifications
    • (dbus) Support showing history and closing notifications via dbus
    • (dbus) Add reply messages to D-Bus methods
    • (notification) Support showing the date of notifications
    • (notification) Support auto-timeout based on estimated read time
    • (notification) Show notification date as human-readable text
    • (render) Use pango/cairo for rendering text
    • (x11) Initialize X11 connection and create window
    • (x11) Support handling multiple notifications
    • (x11) Add logging to X11 functions
    • (x11) Add wrap_content option

    πŸ› Bug Fixes

    • (config) Update notification history logic
    • (config) Use string instead of borrowed string while deserializing
    • (dbus) Skip closing already read notifications
    • (manager) Check for notification count before showing history
    • (notification) Do not run custom command while showing history
    • (typo) Fix typo in security policy

    🚜 Refactor

    • (app) Use D-Bus server implementation for handling notifications
    • (cd) Remove GitHub release requirement from crates.io step
    • (clippy) Apply clippy suggestions
    • (clippy) Apply clippy suggestions
    • (config) Remove unused lifetime parameter
    • (config) Rename auto_timeout field to auto_clear
    • (dbus) Extract notification types into a module
    • (deps) Switch to thiserror for error handling
    • (error) Update the type alias for standard Result type
    • (lib) Switch to library layout
    • (notification) Create a notification manager
    • (readme) Use HTML badges
    • (template) Skip serializing internal fields
    • (template) Improve error handling while parsing/rendering

    πŸ“š Documentation

    • (github) Add Code Of Conduct
    • (github) Add pull request template
    • (github) Add issue templates
    • (github) Add contribution guidelines
    • (github) Add security policy
    • (license) License the project under Apache 2.0 or MIT license
    • (license) Update license copyright years
    • (project) Update emojis in the description
    • (readme) Add README.md
    • (readme) Add sections to README.md
    • (readme) Fix center in README.md
    • (readme) Add more sections to README.md
    • (readme) Add demo GIFs to README.md
    • (readme) Add usage information to README.md
    • (readme) Add urgency configuration info to README.md
    • (readme) Update minimum supported Rust version to 1.64.0
    • (readme) Add ctl usage example
    • (readme) Update logo link
    • (readme) Add AUR instructions
    • (readme) Add badges
    • (readme) Update installation instructions for Arch Linux
    • (readme) Add instructions for installing on Alpine Linux
    • (x11) Fix typo in comment- (no category) Clear runst changelog

    🎨 Styling

    • (assets) Update demo recordings
    • (assets) Update project logo
    • (dbus) Format the introspection data
    • (notification) Show the unread notification count
    • (notification) Update the startup message
    • (readme) Use HTML for the project header
    • (readme) Update the emoji in README.md- (no category) Resolve some clippy warnings

    βš™οΈ Miscellaneous Tasks

    • (assets) Remove unnecessary asset
    • (bors) Add bors config
    • (bors) Remove custom timeout
    • (cargo) Add project metadata
    • (cargo) Add cargo profile configuration to manifest
    • (cargo) Add project metadata
    • (cd) Set up continuous deployment workflow
    • (ci) Add continuous integration workflow
    • (ci) Bump actions/checkout action to v3
    • (ci) Switch to Swatinem/rust-cache action for caching
    • (ci) Run CI for bors
    • (config) Update example config
    • (config) Show elapsed notification time after 1 minute
    • (config) Rename format config value to template
      • BREAKING: rename format config value to template
    • (config) Update default config
    • (deps) Bump dependencies
    • (deps) Bump dependencies
    • (deps) Bump pango from 0.16.3 to 0.16.5 (#12)
    • (deps) Bump serde from 1.0.148 to 1.0.150 (#13)
    • (deps) Bump serde_json from 1.0.89 to 1.0.91
    • (deps) Bump thiserror from 1.0.37 to 1.0.38
    • (deps) Bump toml from 0.5.9 to 0.5.10
    • (deps) Bump cairo-rs from 0.16.3 to 0.16.7
    • (deps) Bump serde from 1.0.150 to 1.0.151
    • (deps) Bump serde from 1.0.151 to 1.0.152
    • (deps) Bump x11rb from 0.11.0 to 0.11.1
    • (deps) Bump dbus from 0.9.6 to 0.9.7
    • (deps) Bump dbus-crossroads from 0.5.1 to 0.5.2
    • (deps) Bump regex from 1.7.0 to 1.7.1
    • (deps) Bump toml from 0.5.10 to 0.5.11
    • (deps) Bump colorsys from 0.6.6 to 0.6.7
    • (deps) Bump toml from 0.5.11 to 0.7.0
    • (deps) Bump toml from 0.7.0 to 0.7.1
    • (deps) Bump serde_json from 1.0.91 to 1.0.92
    • (deps) Bump toml from 0.7.1 to 0.7.2
    • (deps) Bump serde_json from 1.0.92 to 1.0.93
    • (deps) Bump GTK dependencies
    • (deps) Bump transitive dependencies
    • (deps) Bump thiserror from 1.0.38 to 1.0.39
    • (deps) Bump serde_json from 1.0.93 to 1.0.94
    • (deps) Bump rust-embed from 6.4.2 to 6.6.0 (#36)
    • (deps) Bump transitive dependencies
    • (deps) Bump serde from 1.0.152 to 1.0.155
    • (deps) Bump tera from 1.17.1 to 1.18.0
    • (deps) Bump transitive dependencies
    • (deps) Bump toml from 0.7.2 to 0.7.3
    • (deps) Bump serde from 1.0.155 to 1.0.156
    • (deps) Bump pango from 0.17.0 to 0.17.4
    • (deps) Bump tera from 1.18.0 to 1.18.1
    • (deps) Bump thiserror from 1.0.39 to 1.0.40
    • (deps) Bump dirs from 4.0.0 to 5.0.0
    • (deps) Bump serde from 1.0.156 to 1.0.157
    • (deps) Bump serde from 1.0.157 to 1.0.158
    • (deps) Bump regex from 1.7.1 to 1.7.2
    • (deps) Bump regex from 1.7.2 to 1.7.3
    • (deps) Bump rust-embed from 6.6.0 to 6.6.1
    • (deps) Bump serde_json from 1.0.94 to 1.0.95
    • (deps) Bump serde from 1.0.158 to 1.0.159
    • (deps) Bump serde from 1.0.159 to 1.0.160
    • (deps) Bump serde_json from 1.0.95 to 1.0.96
    • (deps) Bump regex from 1.7.3 to 1.8.0
    • (deps) Bump tracing-subscriber from 0.3.16 to 0.3.17
    • (deps) Bump regex from 1.8.0 to 1.8.1
    • (deps) Bump tracing from 0.1.37 to 0.1.38
    • (deps) Bump dirs from 5.0.0 to 5.0.1
    • (deps) Bump serde from 1.0.160 to 1.0.162
    • (deps) Bump serde from 1.0.162 to 1.0.163
    • (deps) Bump toml from 0.7.3 to 0.7.4
    • (deps) Bump sscanf from 0.4.0 to 0.4.1
    • (deps) Bump regex from 1.8.1 to 1.8.2
    • (deps) Bump regex from 1.8.2 to 1.8.3
    • (deps) Bump tera from 1.18.1 to 1.19.0
    • (deps) Bump regex from 1.8.3 to 1.8.4
    • (deps) Bump serde from 1.0.163 to 1.0.164
    • (deps) Bump rust-embed from 6.6.1 to 6.7.0
    • (deps) Bump GTK dependencies
    • (deps) Downgrade tracing crate
    • (deps) Bump x11rb from 0.11.1 to 0.12.0
    • (deps) Bump transitive dependencies
    • (deps) Bump serde_json from 1.0.96 to 1.0.97
    • (deps) Bump toml from 0.7.4 to 0.7.5
    • (deps) Bump serde_json from 1.0.97 to 1.0.99
    • (editorconfig) Add EditorConfig configuration
    • (git) Update .gitignore
    • (github) Add Dependabot config
    • (github) Add CODEOWNERS
    • (github) Add Jekyll theme
    • (github) Remove Jekyll theme
    • (github) Enable sponsorships
    • (github) Add custom domain for GitHub pages
    • (github) Check dependabot updates daily
    • (release) Add release instructions
    • (release) Add notes about releasing
    • (release) Update git-cliff config
    • (release) Remove empty lines from the tag message

    Ci

    • (no category) Prepare automated releases
    Source code(tar.gz)
    Source code(zip)
    nofi-0.1.0-x86_64-unknown-linux-gnu.tar.gz(2.58 MB)
    nofi-0.1.0-x86_64-unknown-linux-gnu.tar.gz.sha512(173 bytes)
Owner
Ellis Clayton
Ellis Clayton
TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

Mathiew May 119 Dec 27, 2022
Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using ttf-parser and allsorts

rust-fontconfig Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using allsorts as a font parser in order to parse .woff,

Felix SchΓΌtt 28 Oct 29, 2022
A system fetch tool for Linux, written in Rust.

fetchit A system fetch tool for Linux, written in Rust. fetchit is a simple system info tool, written in Rust, for Linux based operating systems. It o

Ruturaj Nanoti 26 Nov 21, 2022
Shell Escape for Typst typesetting system. Linux Only.

Shell Escape for Typst This is a simple shell escape for Typst. It allows you to run shell commands directly from Typst compiler. That said, it does n

Nikolay Stepanov 4 Jun 7, 2023
A library that allows for the arbitrary inspection and manipulation of the memory and code of a process on a Linux system.

raminspect raminspect is a crate that allows for the inspection and manipulation of the memory and code of a running process on a Linux system. It pro

Liam Germain 24 Sep 26, 2023
First project in rust which will be to make an accounts system & Leaderboard/Score system

rust-backend this is my first project in rust which will be to make a backend for compsci project it will include: Accounts, Player Achievements (if I

NaughtyDog6000 2 Jul 13, 2023
A more free Rust-Iterator.

CURSOR A more free Rust-Iterator. | Examples | Docs | Latest Note | [dependencies] cursor = "1.0.0" Example use cursor::*; fn example7() -> u8 {

Doha Lee 4 Jun 1, 2022
This automatically patches the RoPro extension for you, allowing you to have pro_tier for free.

RoPro Patcher This automatically patches the RoPro extension for you, allowing you to have pro_tier for free. NOTE Chrome, Brave (and possibly other b

Stefan 10 Jan 1, 2023
a FREE and MODERN split-screen tetris game WITHOUT ADS

tetr:: A ✨ modern ✨ Tetris game made in OpenGL and Rust Gameplay tetr:: is an implementaion of modern Tetris, and essentially a clone of tetr.io. This

Adam Harmansky 3 Sep 10, 2022
Desktop app for reading and downloading manga. With clean distraction-free design and no clutter

Tonbun Tonbun is a desktop app for reading and downloading manga. With clean distraction-free design and no clutter. Build with Rust, Tauri, Vue.js, a

null 23 Nov 30, 2022
Accompanying code for my talk "No free lunch: Limits of Wasm as a bridge from Rust to JS" presented @ EuroRust2022 in Berlin

No free lunch: Limits of Wasm as a bridge from Rust to JS Accompanying code for the talk I presented at EuroRust 2022 in Berlin, Germany Slides for th

Alberto Schiabel 11 Dec 30, 2022
A free and open-source DNA Sequencing/Visualization software for bioinformatics research.

DNArchery ?? A free and open-source cross-platform DNA Sequencing/Visualization Software for bioinformatics research. A toolkit for instantly performi

null 21 Mar 26, 2023
A simple Rust library for OpenAI API, free from complex async operations and redundant dependencies.

OpenAI API for Rust A community-maintained library provides a simple and convenient way to interact with the OpenAI API. No complex async and redundan

null 6 Apr 4, 2023
A little tool to create region-free openingTitle.arc files for New Super Mario Bros. Wii, or to convert them from one region to another

smallworld ...though the mountains divide and the oceans are wide... smallworld is a little tool that can create region-free openingTitle.arc files fo

NSMBW Community 7 Feb 6, 2023
Command Line Scientific Calculator. Free Forever. Made with ❀️ using πŸ¦€

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• -

zahash 17 Oct 28, 2023
Gauzilla: a 3D Gaussian Splatting renderer written in Rust for WebAssembly with lock-free multithreading

Gauzilla A 3D Gaussian Splatting (3DGS) renderer written in Rust for platform-agnostic WebAssembly (WASM) with lock-free multithreading. Uses WebGL an

Yoshi Sato 90 Jan 2, 2024
Free and open public transport routing.

Transitous Free and open public transport routing. Goal A community-run provider-neutral international public transport routing service. Using openly

Public Transport 108 Mar 24, 2024
A simple guide for optimizing linux in detail

Optimizing Linux I am writing this guide as to save my progress and let others contribute to increase the performance even further, after all many are

Siddharth Naithani 86 Dec 28, 2022
Check the reproducibility status of your Arch Linux packages (read-only mirror)

arch-repro-status A CLI tool for querying the reproducibility status of the Arch Linux packages using data from a rebuilderd instance such as reproduc

Arch Linux 12 Nov 16, 2022