Commit Graph
58 Commits
Author SHA1 Message Date
sankalp 69b6ecd2d5 feat: update gitignore 2026-02-22 03:22:00 +05:45
sankalp 373e64fcad feat(include/common): add thread‑safe logging macros and error handling
- New Features
  - Wrap log output with flockfile/funlockfile to guarantee atomic writes.
  - Add LOG_PERROR macro to report messages with errno details.
- Enhancements
  - Include <errno.h> and <string.h> for robust error handling.
  - Remove unused errorf declaration.
- Bug Fixes
  - None.
v0.3.0
2026-02-22 02:35:26 +05:45
sankalp 21cada4969 feat(src/common): replace errorf with LOG_ERROR and add verbose flag
New Features
- None

Enhancements
- Use LOG_ERROR for consistent error logging; add g_verbose flag.

Bug Fixes
- Remove deprecated errorf function.
2026-02-22 02:35:22 +05:45
sankalp 563ebdbbab feat(src): improve logging and refactor console output
Enhancements
- Replace printf and LOG_ERROR with LOG_INFO, LOG_WARN, LOG_PERROR throughout src/app/process.c, src/app/watch.c, and src/audio/config.c
- Use LOG_INFO for headings and formatted tables in sound‑pack listing
- Add missing includes and clean up header organization

Bug Fixes
- Use LOG_PERROR for pipe, fork, and execl failures to log errno correctly
- Ensure proper newline handling in config‑watcher log messages

New Features
- Introduce structured logging for configuration file changes and reload notifications
- Provide clearer usage guidance via LOG_INFO
2026-02-22 02:35:17 +05:45
sankalp a776be0bf3 feat(include/audio): Add sound configuration loading and extended sound pack structures
Introduce API to load sound configurations and expand SoundPack with richer audio data for multi‑key mappings and generic press handling, enabling more flexible audio management.

New Features
- Added `load_sound_config` prototype in `include/audio/config.h`.

Enhancements
- Extended `SoundPack` with generic press arrays, release data fields, and multi‑key mapping structs.
- Added `AudioVoice` struct and `MAX_MIXER_VOICES` for voice management.
- Added `generic_press_data`, `generic_press_samples`, `release_data`, and `release_samples` fields.
2026-02-22 02:35:11 +05:45
sankalp f7a2a7270b feat(root): add POSIX source definition and new audio/input/vbx modules
- New Features: Added audio, input, and vbx modules
- Enhancements: Updated Makefile to include POSIX source definition
- Bug Fixes: None
2026-02-22 02:35:03 +05:45
sankalp 95255580b1 feat(src/common): add write_runtime_system_volume_following_file
The new function writes a runtime state file to track the system volume following setting.

- New Features
  - Added `write_runtime_system_volume_following_file` to persist system volume following state.
2026-02-22 02:08:51 +05:45
sankalp f70e13dd70 feat(include): add system volume following support
Implement configurable system volume following and replace JSON IPC with binary struct.

- New Feature: Introduce `system_volume_following` CLI and runtime option.
- Enhancement: Extend CLI options, reload, and user‑config APIs to propagate the new flag.
- Enhancement: Add `VbxEvent` binary IPC struct and logging macros for better performance.
- Enhancement: Add helper to persist system volume following state.
- Bug Fix: Remove stale `parse_keyboard_event` prototype.
2026-02-22 02:08:46 +05:45
sankalp c44ae01226 feat(src/audio): add system volume following and mute handling
New Features:
- Added command-line option for system volume following and a background thread that polls the default audio sink volume
- Integrated the polled volume multiplier into playback volume calculations
- Introduced new runtime states and flags for system volume tracking

Enhancements:
- Replaced scattered printf debugging with standardized LOG_ERROR/DEBUG/WARN macros
- Pre‑read all runtime states before spawning threads, simplifying the main loop
- Detached the poller thread to run continuously without blocking the main loop

Bug Fixes:
- Extended argument count validation to accommodate the new flag
- Updated thread creation error logging to use LOG_ERROR instead of fprintf
- Fixed potential race by initializing the volume multiplier before playback threads start
2026-02-22 02:08:42 +05:45
sankalp ffef8d7eaf feat(root): add system-volume-following flag and multiplexer functionality
The flag enables automatic scaling of vbx output to match the host system's volume, improving user experience without manual adjustments.

- New Feature: Added `--system-volume-following=0/1` option to enable dynamic tracking.
- Enhancement: Implemented intelligent volume scaling that maintains punchiness across different OS volume levels.
- Enhancement: Updated documentation with detailed explanation of volume mechanics.
2026-02-22 02:08:38 +05:45
sankalp 6658d6561b feat(src): Add comprehensive logging and parameterize system volume following
Replace numerous printf statements with LOG_* macros, introduce system_volume_following parameter, and improve error handling throughout the daemon.

New Features
- Introduce LOG_INFO, LOG_ERROR, LOG_WARN for unified diagnostics.
- Add support for system_volume_following when spawning child processes.
- Log detailed startup information instead of raw printf.

Enhancements
- Refactor start_children signature to accept the new parameter.
- Use strerror(errno) in error logs for clearer messages.
- Improve signal handling output and reload request logging.

Bug Fixes
- Correct error formatting for pipe, fork, chdir, and execl failures.
- Ensure proper handling of system_volume_following_str initialization.
- Replace daemon‑specific prints with appropriate log levels.
2026-02-22 02:08:31 +05:45
sankalp 93491af2e2 . 2025-10-19 11:53:14 +05:45
sankalp 77fe0d5fc1 Merge pull request #3 from S4NKALP/mouse
Mouse
v0.2.0
2025-10-19 11:04:14 +05:45
sankalp a18899003a docs: add mechavibes-dx to credits in README 2025-10-18 14:54:15 +05:45
sankalp 498ba0b5bb docs: update contributing guidelines in README 2025-10-18 14:53:10 +05:45
sankalp 0638bba56f docs: update README to reflect mouse support and config changes 2025-10-18 14:52:07 +05:45
sankalp 652d14c923 refactor(cli): rename KeyVibe to VBX and add mouse support 2025-10-18 14:41:46 +05:45
sankalp d388b0aec0 style(main): apply minor code formatting and readability improvements 2025-10-18 14:35:46 +05:45
sankalp 52ae286c43 refactor(cli): improve CLI UX with clearer messages and usage instructions 2025-10-18 14:32:04 +05:45
sankalp a967ddb6ef refactor: rename keyvibe to vbx in CI workflow for consistency 2025-10-18 14:22:10 +05:45
sankalp 1e9f5c784b rebranding 2025-10-18 14:17:52 +05:45
sankalp 20b81a69dd refactor(build): use consistent naming for KeyVibe target in Makefile 2025-10-15 17:12:43 +05:45
sankalp ce28dc2fde oops many changes, DRY Principle applied other i dont know 2025-10-15 17:04:01 +05:45
sankalp 65dc7da800 oops many changes 2025-10-14 23:32:58 +05:45
sankalp 347d3048f0 feat: add enable/disable keyboard and mouse sounds with CLI options and config file 2025-10-13 23:43:50 +05:45
sankalp 7c10a7a5e3 style(soundpacks): improve sound pack listing format for readability 2025-10-13 23:10:02 +05:45
sankalp c9460d54a4 style(ui): improve sound pack listing output formatting 2025-10-13 23:08:08 +05:45
sankalp 52a7629834 docs: improve CLI usage instructions and error messages 2025-10-13 23:05:37 +05:45
sankalp 4343cf56bf oops many changes 2025-10-13 23:03:22 +05:45
sankalp 028785ac27 oops many changes 2025-10-13 21:35:35 +05:45
sankalp 2e3b870efe oops many changes i forgot to push lol 2025-10-13 09:32:42 +05:45
sankalp b9531d7c53 refactor: remove override-config option and always apply CLI arguments to config 2025-10-13 08:15:25 +05:45
sankalp 09ab061151 docs: update README to improve clarity and add credits 2025-10-10 11:57:32 +05:45
sankalp f857d20b27 fix: pkgname for AUR and pushed pkg to AUR 2025-10-09 13:58:23 +05:45
sankalp 00ea0f005e docs: update README with installation instructions, usage examples and new logo v0.1.0 2025-10-09 13:21:40 +05:45
sankalp 868456f025 fix(input): handle EINTR signal and detach input thread 2025-10-08 14:15:02 +05:45
sankalp 872cb30721 refactor: centralize and improve error handling and path construction 2025-10-08 14:11:45 +05:45
sankalp 176d691007 chore: downgrade project version to 0.1.0 2025-10-08 13:38:26 +05:45
sankalp 3650ad254a docs: remove redundant config and examples from usage message 2025-10-08 13:27:27 +05:45
sankalp 2e167e60d9 fix(cli): prevent abbreviated options from being passed via -- parameters 2025-10-08 13:25:54 +05:45
sankalp 446d60dfce fix(cli): correct command-line option parsing and handling 2025-10-08 13:25:06 +05:45
sankalp 7f41bcf0ad refactor: remove reload functionality and enforce exact long option matching 2025-10-08 13:17:46 +05:45
sankalp 5ef12ff2ec fix(audio, cli): handle file read errors and free allocated sound name 2025-10-08 13:05:26 +05:45
sankalp 884c09b607 refactor(audio): remove sound_pack from PlaybackData and add verbose mode 2025-10-08 12:55:44 +05:45
sankalp 59f258a028 fix: prevent buffer overflows when handling long file paths 2025-10-08 12:45:28 +05:45
sankalp 5902bf3ebb feat: add mute functionality via command-line option and runtime file check 2025-10-08 12:35:18 +05:45
sankalp fb81c12ba7 docs: update README with project description, features, build instructions, usage, and sound pack details 2025-10-07 23:33:23 +05:45
sankalp d51d8e9ea3 chore: add audio assets for kalih-box-white 2025-10-07 23:01:46 +05:45
sankalp f23b52afdd feat: add "Banana Split Lubed" and "Kalih Box White" custom sound packs 2025-10-07 23:01:12 +05:45
sankalp 02c63fae2c feat: implement keyvibe daemon with sound selection and configuration reloading 2025-10-07 22:55:19 +05:45