Skip to content

Releases: North-West-Wind/cls

v2.0.0 - Waves

Choose a tag to compare

@North-West-Wind North-West-Wind released this 08 Jun 15:42

This release added a new feature: Waves

Waves

  • A waveform menu has been added. Users can defined their own waveform
    • Current supported wave types are: Sine, Square, Triangle, Saw
  • Playing waveforms work a bit differently from playing files
    • If you press enter on the TUI, it will only play for 1 second
    • As long as the global hotkey combo is held, the wave will keep playing
    • Waveforms can also be played by ID using a new subcommand play-wave <id>. It can only be stopped by stop-wave <id>
  • The design choice is to allow dynamic-length waves such as censoring swears or playing music

Thread-Safety

  • The previous unsafe calls to a global variable of the program has been changed to locks
  • This was a HUGE change, which resulted in deadlocks. I have cleaned up most of them, but if you experience some uncaught ones (mostly signified by the program freezing), please report them

Checksum

SHA256 of the cls binary file:
f42246ef7cfac7b36df48ba89371aee9c71a9a4d38f1cb61f088650b41f2ccf2

v1.3.1: Config Rewrite

Choose a tag to compare

@North-West-Wind North-West-Wind released this 01 Jan 05:36

This release doesn't add any new features to the soundboard, but a tidy-up for the config file.

Config

  • The config file has been changed from config.toml to config.json (likely under the directory ~/.config/cls/)
    • An auto config migration system is also added, so don't worry about it
    • Although it's recommended to make a backup of your previous config just in case
  • The config data is structured in a more compact way, besides minifying the output JSON
    • For example, my config file went from ~6.5KiB to ~2.9KiB
    • Configuring per-file settings (e.g. hotkey, file ID, volume) is now more efficient in terms of storage
  • Changed config library from confy to config + dirs

Optimization

This release introduced some insignificant size optimizations, but I'm putting them here anyway.

  • Replaced pulsectl-rs and libpulse-binding with a single pactl command
    • Yes, this uses external dependency, but there are parts that already use the same command anyway so there's not an increase in external dependency
  • Modified Cargo.toml to output executable with smaller size

Checksum

SHA256 for the cls binary file:
06e1187e63d0aab508547fd43c98331e72eccac32b32d881f8cedf948cd702c1

v1.3.0: File IDs

Choose a tag to compare

@North-West-Wind North-West-Wind released this 29 Dec 14:35

File ID

File ID is a number that maps to a path. This ID can be used to play the mapped file using Unix socket.
To set/unset a file ID:

  • Navigate to the Files block
  • Press v to set an ID for a file
  • Press b to remove the ID from a file
    You can now use the command to play the file corresponding to the ID in another instance:
cls play-id <id>

Bug Fixes

  • Setting hotkeys now work with empty file_key in config (#2)

Checksum

SHA256 for the cls binary file:
c33d32c08c7ffc47d08ffca25590575e2a759da90ad37dda359bdbdbf43e579c

v1.2.0: Settings, Playlist Mode, QoL

Choose a tag to compare

@North-West-Wind North-West-Wind released this 25 Oct 09:36

Settings

  • Added a settings menu
    • Can be toggled with c
    • c and v are no longer used for (re)setting the global stop hotkey
  • List of settings
    • Stop Key: The global stop hotkey
    • Loopback 1 and 2: Sinks to loopback to
    • Playlist Mode: Will be explained later
  • Set an option with enter
  • Reset an option with delete

Playlist Mode

When enabled, instead of playing files in parallel, they are played sequentially.
That means a file is play after the previous have finished.

It can be toggled in the settings menu.

Quality of Life (QoL)

  • Auto loopback: Automatically setup module-loopback when starting cls. Configurable via settings menu.
  • Duration display: File duration display now uses a custom format instead of humantime. It is now more concise.
  • Key propagate: Without entering a block, you can now send keys to that block. For example, you don't need to enter the Tabs block to navigate through tabs. Left and right will work outside the block.
  • Looping indices: Moving beyond the end or before the start will loop the selected index to the start or the end.
  • Previous hotkey: Setting hotkey for a file that has hotkey set previously will now display the previous hotkey in the popup.
  • Random play: Press '/' to play a random file from a tab.

Bug Fixes

  • Prevented more crashes due to small window size
  • Files with hotkeys now correct trim themselves in small window size
  • Configuration file won't be overwritten if values are missing

Checksum

SHA256 for the cls binary file:
7b690d34cbb50c90c0a096db90d1543ceed328cd2f21f5f47e9e84b3d5e4dba7

v1.1.0: Socket Control

Choose a tag to compare

@North-West-Wind North-West-Wind released this 16 Oct 12:23

Added ways to control cls using Unix socket. cls also provides subcommands for controlling it.
Check the README Socket Control section for usage and details.

SHA256 for the cls binary file:
6c27a839158d5d726667331496f6119a72cf1d9fec22e00064beda8bddeb705f

Fast Scan

Choose a tag to compare

@North-West-Wind North-West-Wind released this 07 Oct 13:40

Scan files using file formats instead of ffprobe, and then do ffprobe in another thread. This significantly reduces the time needed to wait for a file list.

SHA256 for the cls binary file:
593e4114ed0ac1202e1c867e3e90f1cb85129ff7088f2dfbed7c8ce5ed3ff2a8

It's done!!!

Choose a tag to compare

@North-West-Wind North-West-Wind released this 07 Oct 07:44

The first release of cls.

SHA256 for the cls binary file:
3f3e64e13719d3c8ce16cbe497e93faf3f6deb6207e7b888a4b5e942acf4badc