Releases: North-West-Wind/cls
Release list
v2.0.0 - Waves
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 bystop-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
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.tomltoconfig.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
confytoconfig+dirs
Optimization
This release introduced some insignificant size optimizations, but I'm putting them here anyway.
- Replaced
pulsectl-rsandlibpulse-bindingwith a singlepactlcommand- 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.tomlto output executable with smaller size
Checksum
SHA256 for the cls binary file:
06e1187e63d0aab508547fd43c98331e72eccac32b32d881f8cedf948cd702c1
v1.3.0: File IDs
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
Filesblock - Press
vto set an ID for a file - Press
bto 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_keyin config (#2)
Checksum
SHA256 for the cls binary file:
c33d32c08c7ffc47d08ffca25590575e2a759da90ad37dda359bdbdbf43e579c
v1.2.0: Settings, Playlist Mode, QoL
Settings
- Added a settings menu
- Can be toggled with
c candvare no longer used for (re)setting the global stop hotkey
- Can be toggled with
- 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-loopbackwhen startingcls. 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
Tabsblock 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
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
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!!!
The first release of cls.
SHA256 for the cls binary file:
3f3e64e13719d3c8ce16cbe497e93faf3f6deb6207e7b888a4b5e942acf4badc