Skip to content

Latest commit

Β 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OmaVibes: Type with Cozy Sound

OmaVibes gives you cozy typing sound effects with over 40+ sounds, gamified typing stats with ranks, detailed analytics, random playback, and volume control for the Omarchy bar.


preview
test-compressed.mp4
image image image image image

Note: Enable sound in the above preview video


I didn't originally plan on releasing this.

I created OmaVibes because I wanted cozy typing sounds while typing, but I couldn't afford a mechanical keyboard sound setup. So I decided to build my own solution.

OmaVibes originally started with a Walker-based implementation, and eventually evolved into an Omarchy plugin with a proper bar interface, soundpack browser, search, random playback, per-pack volume control, persistent settings, and built-in typing stats and analytics.

Hopefully you enjoy it.

What is OmaVibes?

OmaVibes is an Omarchy bar widget that plays cozy typing sound effects whenever you type.

It comes with over 40+ sounds across the bundled soundpacks, along with search, random playback, volume control, a typing profile, gamified ranks, achievements, and detailed typing analytics.

OmaVibes uses wayvibes as its typing sound runtime. It listens for keyboard input and plays the selected sound effects while you type. The required runtime is bundled with OmaVibes, so no separate wayvibes installation is required.


Requirements

  • Omarchy 4 (Quattro)
  • A working Quickshell-based Omarchy shell
  • Keyboard input access for wayvibes

Keyboard Input Access

Depending on your system configuration, wayvibes may require your user to be part of the input group:

sudo usermod -aG input $USER

Log out and back in after changing the group.

Installation

From the Omarchy Plugin Marketplace

Once OmaVibes is published:

omarchy plugin add mshareef-git.omavibes --enable

From GitHub

Clone the repository into the Omarchy plugin directory:

git clone https://github.com/mshareef-git/omavibes.git \
  ~/.config/omarchy/plugins/omavibes

Validate the plugin:

omarchy plugin validate ~/.config/omarchy/plugins/omavibes

Enable the plugin on the right side of the bar:

omarchy plugin enable mshareef-git.omavibes right

Restart the shell if necessary:

omarchy restart shell

UsageπŸ’₯

Click the OmaVibes keyboard icon in the Omarchy top bar.

Keyboard input

Use the settings cog in the bottom-right corner of the panel to choose which keyboard OmaVibes listens to. It lists every keyboard-capable input device, including virtual keyboards. OmaVibes saves a stable /dev/input/by-id path when one is available, then uses that selection the next time playback starts.

Search

Use the search field to filter the available soundpacks by name.

Play a Soundpack

Click any soundpack in the list to start playing it.

The currently selected soundpack is highlighted and marked with a check.

Profile

Open Profile to see your typing progression.

The profile includes:

  • Current rank
  • Progress toward the next rank
  • Lifetime words
  • Lifetime typing time
  • Lifetime key presses
  • Active days
  • Longest streak
  • Personal records
  • Completed achievements

Your rank is based on lifetime words typed and becomes progressively harder as you move upward.

Stats

Open Stats for detailed typing analytics.

Stats include:

  • Day / Week / Month views
  • Words typed
  • Typing time
  • Typing vs idle time
  • Typing activity
  • Words heatmap
  • Consistency
  • Daily average
  • Best day
  • Longest streak
  • Lifetime totals
  • Most-used keys
  • Key frequency visualization
  • Keyboard usage heatmap
  • Backspace rate
  • Keystrokes per word
  • Words per typing hour

Privacy

OmaVibes stores aggregate statistics such as word totals, typing time, and key-press counts.

It does not store the actual text you type, typed sentences, key sequences, or per-key timestamps.

Analytics are stored locally on the device.

Random

Click Random to choose a random soundpack.

When a search is active, random playback uses the currently filtered soundpacks.

Turn Off

Click Turn Off to stop the currently playing typing sounds.

Volume

Use the volume slider to adjust the current soundpack's volume from 1 to 10.

Each soundpack can have its own saved volume level.

Soundpacks

OmaVibes includes the bundled soundpacks inside the packs/ directory.

The soundpacks are included with the plugin so OmaVibes works immediately after installation without requiring users to download additional soundpacks.

Custom Soundpacks

OmaVibes also supports user soundpacks through:

~/wayvibes/<pack-name>/

A custom soundpack can contain the audio files required by wayvibes together with its config.json.

When a matching user soundpack exists, OmaVibes can use the user version instead of the bundled version.

Features

  • Omarchy bar integration β€” Open OmaVibes directly from the top bar.
  • 40+ typing sounds β€” A collection of cozy typing sound effects across the bundled soundpacks.
  • Soundpack browser β€” Browse the available soundpacks from one panel.
  • Search β€” Filter soundpacks instantly by name.
  • One-click playback β€” Select a soundpack to start playing it immediately.
  • Random playback β€” Pick a random soundpack from the available collection.
  • Turn Off β€” Stop the currently playing typing sounds.
  • Volume control β€” Adjust the volume from 1 to 10.
  • Per-pack volume β€” Each soundpack remembers its own volume setting.
  • Persistent settings β€” Soundpack and volume settings are preserved across shell restarts.
  • Profile β€” See your lifetime typing progress, current rank, progress toward the next rank, personal records, and completed achievements.
  • Gamified ranks β€” Lifetime words typed determine your rank, with increasingly difficult tiers to climb.
  • Achievements β€” Unlock typing milestones based on lifetime words, key presses, typing days, and streaks.
  • Detailed analytics β€” Explore daily, weekly, monthly, and lifetime typing statistics.
  • Key analytics β€” See your most-used keys, key frequency, keyboard usage, and other typing statistics.
  • Theme-aware interface β€” Uses Omarchy/Quickshell styling and the active bar font and theme colors.
  • Local analytics β€” Typing statistics stay on the device, and the actual text you type is never stored.
  • Bundled runtime β€” Includes the wayvibes executable and bundled soundpacks, so a separate wayvibes installation is not required.

How It Works

OmaVibes is implemented as an Omarchy bar widget using Quickshell.

BarWidget.qml
    |
    +-- Panel.qml
          |
          +-- OmaVibesState.qml
                  |
                  +-- Soundpack selection
                  +-- Search and filtering
                  +-- Random playback
                  +-- Volume control
                  +-- Profile and rank progression
                  +-- Typing statistics
                  +-- Key analytics
                  +-- Persistent settings
                  +-- wayvibes process control

The bundled wayvibes executable is located at:

bin/wayvibes

The bundled soundpacks are located at:

packs/

OmaVibes stores its persistent plugin state at:

~/.local/state/omarchy/omavibes.json

Typing analytics are stored at:

~/.local/state/omarchy/omavibes-analytics.json

Repository Structure

omavibes/
β”œβ”€β”€ BarWidget.qml
β”œβ”€β”€ Panel.qml
β”œβ”€β”€ OmaVibesState.qml
β”œβ”€β”€ manifest.json
β”œβ”€β”€ qmldir
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
β”œβ”€β”€ preview.png
β”œβ”€β”€ bin/
β”‚   └── wayvibes
β”œβ”€β”€ packs/
β”‚   └── <soundpacks>/
└── third_party/
    └── wayvibes/

Development

From the plugin directory, validate the plugin with:

omarchy plugin validate .

Run QML linting against the Omarchy shell:

qmllint -I "$OMARCHY_PATH/shell" \
  BarWidget.qml \
  Panel.qml \
  OmaVibesState.qml

After making changes, restart the Omarchy shell:

omarchy restart shell

Rebuild the bundled Wayvibes runtime when changing its source:

./third_party/wayvibes/build.sh

Before Publishing

Test the following:

  • Bar icon appears correctly
  • Panel opens and closes correctly
  • Profile opens correctly
  • Stats opens correctly
  • Soundpack selection works
  • Search filtering works
  • Random playback works
  • Turn Off works
  • Volume control works
  • Per-pack volume is preserved
  • Typing statistics update correctly
  • Key analytics update correctly
  • Rank progress updates correctly
  • Completed achievements appear correctly
  • Shell restart does not break the plugin
  • Plugin can be disabled and enabled again
  • Plugin can be removed cleanly

Removal

Disable the plugin:

omarchy plugin disable mshareef-git.omavibes

Remove the plugin:

omarchy plugin remove mshareef-git.omavibes

Removing the plugin does not remove user data stored outside the plugin directory, such as:

~/.local/state/omarchy/omavibes.json
~/.local/state/omarchy/omavibes-analytics.json
~/wayvibes/

These can be removed separately if no longer needed.

Credits

Built for Omarchy Quattro.

Omarchy: https://omarchy.org/

License

OmaVibes is licensed under the MIT License.

See LICENSE for the complete license text.

About

Cozy typing sounds with 40+ sound effects, detailed analytics, random playback, and volume control.

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages