diff --git a/Makefile b/Makefile index 3692a42..c91aec2 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,3 @@ - CC = gcc # Updated include paths for modular headers CFLAGS = -Wall -Wextra -std=c99 -Iinclude -Iinclude/app -Iinclude/audio -Iinclude/common -Iinclude/sound -Iinclude/config @@ -11,25 +10,25 @@ LDFLAGS_SOUND = -ljson-c -lpulse -lpulse-simple -lsndfile -lpthread LDFLAGS_KEYBOARD = $(shell pkg-config --libs libevdev libinput libudev) -lpthread # Targets -KEYVIBE_TARGET = keyvibe +VBX_TARGET = vbx SOUND_TARGET = audio KEYBOARD_TARGET = input # Sources (reorganized) -KEYVIBE_SOURCE = src/main.c src/common/utils.c src/config.c src/soundpacks.c src/app/process.c src/app/watch.c src/cli.c src/app/reload.c +VBX_SOURCE = src/main.c src/common/utils.c src/config.c src/soundpacks.c src/app/process.c src/app/watch.c src/cli.c src/app/reload.c SOUND_SOURCE = src/audio/main.c src/audio/config.c src/audio/playback.c src/common/utils.c KEYBOARD_SOURCE = src/input.c src/common/utils.c # Install paths BINDIR = $(PREFIX)/bin -SHAREDIR = $(PREFIX)/share/keyvibe -UDEV_RULE = /etc/udev/rules.d/99-keyvibe-allow-keyboard.rules +SHAREDIR = $(PREFIX)/share/vbx +UDEV_RULE = /etc/udev/rules.d/99-vbx-allow-keyboard.rules -all: $(KEYVIBE_TARGET) $(SOUND_TARGET) $(KEYBOARD_TARGET) +all: $(VBX_TARGET) $(SOUND_TARGET) $(KEYBOARD_TARGET) # Build main launcher (needs json-c) -$(KEYVIBE_TARGET): $(KEYVIBE_SOURCE) +$(VBX_TARGET): $(VBX_SOURCE) $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ -ljson-c -lpthread $(SOUND_TARGET): $(SOUND_SOURCE) @@ -39,22 +38,22 @@ $(KEYBOARD_TARGET): $(KEYBOARD_SOURCE) $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS_KEYBOARD) clean: - rm -f $(KEYVIBE_TARGET) $(SOUND_TARGET) $(KEYBOARD_TARGET) + rm -f $(VBX_TARGET) $(SOUND_TARGET) $(KEYBOARD_TARGET) test: all @echo "Testing sound packs:" - ./$(KEYVIBE_TARGET) --list + ./$(VBX_TARGET) --list @echo "" - @echo "To run KeyVibe:" - @echo " sudo ./$(KEYVIBE_TARGET) # Default sound" - @echo " sudo ./$(KEYVIBE_TARGET) -s cherrymx-blue-abs # Specific sound" - @echo " sudo ./$(KEYVIBE_TARGET) --help # Show help" + @echo "To run VBX:" + @echo " sudo ./$(VBX_TARGET) # Default sound" + @echo " sudo ./$(VBX_TARGET) -s cherrymx-blue-abs # Specific sound" + @echo " sudo ./$(VBX_TARGET) --help # Show help" install: - @echo "Installing KeyVibe to $(DESTDIR)$(BINDIR) and $(DESTDIR)$(SHAREDIR)..." - install -Dm755 $(KEYVIBE_TARGET) $(DESTDIR)$(BINDIR)/$(KEYVIBE_TARGET) - install -Dm755 $(SOUND_TARGET) $(DESTDIR)$(BINDIR)/keyvibe-audio - install -Dm755 $(KEYBOARD_TARGET) $(DESTDIR)$(BINDIR)/keyvibe-input + @echo "Installing VBX to $(DESTDIR)$(BINDIR) and $(DESTDIR)$(SHAREDIR)..." + install -Dm755 $(VBX_TARGET) $(DESTDIR)$(BINDIR)/$(VBX_TARGET) + install -Dm755 $(SOUND_TARGET) $(DESTDIR)$(BINDIR)/vbx-audio + install -Dm755 $(KEYBOARD_TARGET) $(DESTDIR)$(BINDIR)/vbx-input install -d $(DESTDIR)$(SHAREDIR) cp -r soundpacks $(DESTDIR)$(SHAREDIR)/ @echo "Installing udev rule for non-root keyboard access..." @@ -71,10 +70,10 @@ install: @echo "Installation complete." uninstall: - @echo "Uninstalling KeyVibe from $(DESTDIR)$(BINDIR) and $(DESTDIR)$(SHAREDIR)..." - rm -f $(DESTDIR)$(BINDIR)/$(KEYVIBE_TARGET) - rm -f $(DESTDIR)$(BINDIR)/keyvibe-audio - rm -f $(DESTDIR)$(BINDIR)/keyvibe-input + @echo "Uninstalling VBX from $(DESTDIR)$(BINDIR) and $(DESTDIR)$(SHAREDIR)..." + rm -f $(DESTDIR)$(BINDIR)/$(VBX_TARGET) + rm -f $(DESTDIR)$(BINDIR)/vbx-audio + rm -f $(DESTDIR)$(BINDIR)/vbx-input rm -rf $(DESTDIR)$(SHAREDIR) @echo "Removing udev rule..." @sudo rm -f $(UDEV_RULE) || true diff --git a/include/app/cli.h b/include/app/cli.h index aec605a..69a1e91 100644 --- a/include/app/cli.h +++ b/include/app/cli.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_CLI_H -#define KEYVIBE_CLI_H +#ifndef VBX_CLI_H +#define VBX_CLI_H typedef struct { char *sound; @@ -20,6 +20,6 @@ typedef struct { void print_usage(const char *program_name); int parse_cli(int argc, char **argv, CliOptions *out); -#endif // KEYVIBE_CLI_H +#endif // VBX_CLI_H diff --git a/include/app/process.h b/include/app/process.h index 4f35bc8..3696b2a 100644 --- a/include/app/process.h +++ b/include/app/process.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_PROCESS_H -#define KEYVIBE_PROCESS_H +#ifndef VBX_PROCESS_H +#define VBX_PROCESS_H #include #include @@ -20,4 +20,4 @@ int start_children(const char *sound_dir, const char *config_path, int volume, int keyboard_mute, int mouse_mute, int keyboard_enabled, int mouse_enabled); void handle_sighup(int sig); -#endif // KEYVIBE_PROCESS_H +#endif // VBX_PROCESS_H diff --git a/include/app/reload.h b/include/app/reload.h index da71817..a213bcd 100644 --- a/include/app/reload.h +++ b/include/app/reload.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_RELOAD_H -#define KEYVIBE_RELOAD_H +#ifndef VBX_RELOAD_H +#define VBX_RELOAD_H int handle_reload(const char *user_cfg_path, char *current_sound_name, char *current_mouse_sound_name, @@ -10,6 +10,6 @@ int handle_reload(const char *user_cfg_path, int current_mouse_volume_arg, int current_keyboard_mute, int current_mouse_mute, int *current_keyboard_enabled, int *current_mouse_enabled); -#endif // KEYVIBE_RELOAD_H +#endif // VBX_RELOAD_H diff --git a/include/app/watch.h b/include/app/watch.h index 5ff54a5..df483c3 100644 --- a/include/app/watch.h +++ b/include/app/watch.h @@ -1,6 +1,6 @@ -#ifndef KEYVIBE_WATCH_H -#define KEYVIBE_WATCH_H +#ifndef VBX_WATCH_H +#define VBX_WATCH_H int start_config_watcher(const char *path); -#endif // KEYVIBE_WATCH_H +#endif // VBX_WATCH_H diff --git a/include/audio/playback.h b/include/audio/playback.h index a0cba5c..325a7a2 100644 --- a/include/audio/playback.h +++ b/include/audio/playback.h @@ -1,10 +1,10 @@ -#ifndef KEYVIBE_AUDIO_PLAYBACK_H -#define KEYVIBE_AUDIO_PLAYBACK_H +#ifndef VBX_AUDIO_PLAYBACK_H +#define VBX_AUDIO_PLAYBACK_H int init_audio(void); int parse_keyboard_event(const char *json_line, int *key_code, int *is_pressed); void play_sound_segment(int key_code, int is_pressed); -#endif // KEYVIBE_AUDIO_PLAYBACK_H +#endif // VBX_AUDIO_PLAYBACK_H diff --git a/include/audio/types.h b/include/audio/types.h index bb9a080..11f4861 100644 --- a/include/audio/types.h +++ b/include/audio/types.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_AUDIO_TYPES_H -#define KEYVIBE_AUDIO_TYPES_H +#ifndef VBX_AUDIO_TYPES_H +#define VBX_AUDIO_TYPES_H #include @@ -42,4 +42,4 @@ extern int g_mouse_mute; extern int g_keyboard_enabled; extern int g_mouse_enabled; -#endif // KEYVIBE_AUDIO_TYPES_H +#endif // VBX_AUDIO_TYPES_H diff --git a/include/common/mute.h b/include/common/mute.h index d51cfc8..f1fae62 100644 --- a/include/common/mute.h +++ b/include/common/mute.h @@ -1,9 +1,9 @@ -#ifndef KEYVIBE_MUTE_H -#define KEYVIBE_MUTE_H +#ifndef VBX_MUTE_H +#define VBX_MUTE_H int read_runtime_mute_file(void); void write_runtime_mute_file(int mute); void write_runtime_keyboard_mute_file(int mute); void write_runtime_mouse_mute_file(int mute); -#endif // KEYVIBE_MUTE_H +#endif // VBX_MUTE_H diff --git a/include/common/utils.h b/include/common/utils.h index e8db7e5..eb808d7 100644 --- a/include/common/utils.h +++ b/include/common/utils.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_UTILS_H -#define KEYVIBE_UTILS_H +#ifndef VBX_UTILS_H +#define VBX_UTILS_H #include #include @@ -45,4 +45,4 @@ void *safe_memcpy(void *dest, const void *src, size_t n); void *safe_memmove(void *dest, const void *src, size_t n); void *safe_memset(void *s, int c, size_t n); -#endif // KEYVIBE_UTILS_H +#endif // VBX_UTILS_H diff --git a/include/config.h b/include/config.h index 1347bde..68adb25 100644 --- a/include/config.h +++ b/include/config.h @@ -2,7 +2,7 @@ #define __CONFIG_H__ #define PROJECT_VERSION "1.1.0" -#define GETTEXT_PACKAGE "keyvibe" +#define GETTEXT_PACKAGE "vbx" #define PKEXEC_PATH "/usr/bin/pkexec" // Prefix macro should be defined by compiler flags, fallback to /usr @@ -13,8 +13,8 @@ #define PACKAGE_BINDIR PACKAGE_PREFIX "/bin" #define PACKAGE_LOCALEDIR PACKAGE_PREFIX "/share/locale" -// KeyVibe specific paths relative to prefix -#define KeyVibe_DATA_DIR PACKAGE_PREFIX "/share/keyvibe" -#define KeyVibe_BIN_DIR PACKAGE_PREFIX "/bin" +// VBX specific paths relative to prefix +#define VBX_DATA_DIR PACKAGE_PREFIX "/share/vbx" +#define VBX_BIN_DIR PACKAGE_PREFIX "/bin" #endif diff --git a/include/soundpacks.h b/include/soundpacks.h index b1115cf..3083b7d 100644 --- a/include/soundpacks.h +++ b/include/soundpacks.h @@ -1,5 +1,5 @@ -#ifndef KEYVIBE_SOUNDPACKS_H -#define KEYVIBE_SOUNDPACKS_H +#ifndef VBX_SOUNDPACKS_H +#define VBX_SOUNDPACKS_H #include int resolve_keyboard_sound_base_dir(const char *sound_name, char *out_basedir, @@ -16,4 +16,4 @@ int validate_keyboard_sound_pack(const char *sound_name); int validate_mouse_sound_pack(const char *sound_name); int list_sound_packs(void); -#endif // KEYVIBE_SOUNDPACKS_H +#endif // VBX_SOUNDPACKS_H diff --git a/include/user_config.h b/include/user_config.h index 5d2d719..f063805 100644 --- a/include/user_config.h +++ b/include/user_config.h @@ -1,18 +1,18 @@ -#ifndef KEYVIBE_CONFIG_IO_H -#define KEYVIBE_CONFIG_IO_H +#ifndef VBX_CONFIG_IO_H +#define VBX_CONFIG_IO_H #include // Resolve user config path: returns buffer on success, NULL on failure char *get_user_config_path(char *buffer, size_t buflen); -// Write ~/.keyvibe.json in new format +// Write ~/.vbx.json in new format int write_user_config(const char *path, const char *keyboard_sound, const char *mouse_sound, int keyboard_volume, int mouse_volume, int keyboard_enabled, int mouse_enabled); -// Read ~/.keyvibe.json supporting new and legacy formats +// Read ~/.vbx.json supporting new and legacy formats int read_user_config(const char *path, char **out_keyboard_sound, char **out_mouse_sound, int *out_keyboard_volume, int *out_mouse_volume, int *out_keyboard_enabled, int *out_mouse_enabled); -#endif // KEYVIBE_CONFIG_IO_H +#endif // VBX_CONFIG_IO_H diff --git a/src/app/process.c b/src/app/process.c index 351be06..ba46a8b 100644 --- a/src/app/process.c +++ b/src/app/process.c @@ -21,7 +21,7 @@ volatile sig_atomic_t reload_requested = 0; void cleanup_processes(int sig) { (void)sig; if (!is_daemon) { - printf("\nShutting down KeyVibe...\n"); + printf("\nShutting down VBX...\n"); } if (sound_pid > 0) { kill(sound_pid, SIGTERM); @@ -42,7 +42,7 @@ int require_running_pid(pid_t *out_pid) { pid_t running_pid = 0; if (!read_pidfile(pidfile_path, &running_pid) || !process_is_running(running_pid)) { - fprintf(stderr, "KeyVibe: not running.\n"); + fprintf(stderr, "VBX: not running.\n"); return 0; } *out_pid = running_pid; @@ -108,8 +108,8 @@ int start_children(const char *sound_dir, const char *config_path, int volume, return 0; } char sound_player_path[MAX_PATH_LENGTH]; - snprintf(sound_player_path, sizeof(sound_player_path), "%s/keyvibe-audio", - KeyVibe_BIN_DIR); + snprintf(sound_player_path, sizeof(sound_player_path), "%s/vbx-audio", + VBX_BIN_DIR); if (sound_pid == 0) { close(pipefd[1]); dup2(pipefd[0], STDIN_FILENO); @@ -131,11 +131,11 @@ int start_children(const char *sound_dir, const char *config_path, int volume, int_to_str(keyboard_enabled_str, sizeof(keyboard_enabled_str), keyboard_enabled); int_to_str(mouse_enabled_str, sizeof(mouse_enabled_str), mouse_enabled); - execl(sound_player_path, "keyvibe-audio", "config.json", volume_str, + execl(sound_player_path, "vbx-audio", "config.json", volume_str, verbose_str, mute_str, mouse_config_path, mouse_volume_str, keyboard_mute_str, mouse_mute_str, keyboard_enabled_str, mouse_enabled_str, (char *)NULL); - perror("execl keyvibe-audio"); + perror("execl vbx-audio"); exit(1); } keyboard_pid = fork(); @@ -148,13 +148,13 @@ int start_children(const char *sound_dir, const char *config_path, int volume, } char get_key_presses_path[MAX_PATH_LENGTH]; snprintf(get_key_presses_path, sizeof(get_key_presses_path), - "%s/keyvibe-input", KeyVibe_BIN_DIR); + "%s/vbx-input", VBX_BIN_DIR); if (keyboard_pid == 0) { close(pipefd[0]); dup2(pipefd[1], STDOUT_FILENO); close(pipefd[1]); - execl(get_key_presses_path, "keyvibe-input", (char *)NULL); - perror("execl keyvibe-input"); + execl(get_key_presses_path, "vbx-input", (char *)NULL); + perror("execl vbx-input"); exit(1); } close(pipefd[0]); diff --git a/src/audio/main.c b/src/audio/main.c index 9a0850a..d9f46b8 100644 --- a/src/audio/main.c +++ b/src/audio/main.c @@ -22,7 +22,7 @@ static int read_runtime_state(const char *filename_suffix, int default_value) { if (!rd || strlen(rd) == 0) { rd = "/tmp"; } - if (!safe_snprintf(state_file, sizeof(state_file), "%s/keyvibe-%s-%d", rd, + if (!safe_snprintf(state_file, sizeof(state_file), "%s/vbx-%s-%d", rd, filename_suffix, (int)getuid())) { return default_value; } diff --git a/src/cli.c b/src/cli.c index 91de5a3..c9a2470 100644 --- a/src/cli.c +++ b/src/cli.c @@ -30,7 +30,7 @@ static void set_volume(int *volume_ptr, int value) { } void print_usage(const char *program_name) { - printf("KeyVibe - Mechanical Keyboard Sound Simulator\n"); + printf("VBX - Mechanical Keyboard Sound Simulator\n"); printf("Version: %s\n\n", PROJECT_VERSION); printf("USAGE:\n"); @@ -79,7 +79,7 @@ void print_usage(const char *program_name) { printf(" %s --keyboard-volume 80 --mouse-volume 60 # Different volumes\n", program_name); printf("\n"); - printf("CONFIG: Settings are saved to ~/.keyvibe.json and auto-reload in " + printf("CONFIG: Settings are saved to ~/.vbx.json and auto-reload in " "daemon mode.\n"); } diff --git a/src/common/utils.c b/src/common/utils.c index 026a11d..a4d73d1 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -13,7 +13,7 @@ int read_runtime_mute_file() { const char *rd = getenv("XDG_RUNTIME_DIR"); if (!rd || strlen(rd) == 0) rd = "/tmp"; - if (!safe_snprintf(mute_file, sizeof(mute_file), "%s/keyvibe-mute-%d", rd, + if (!safe_snprintf(mute_file, sizeof(mute_file), "%s/vbx-mute-%d", rd, (int)getuid())) return 0; FILE *f = fopen(mute_file, "r"); @@ -34,7 +34,7 @@ static void write_runtime_state_file(const char *filename_suffix, int value) { const char *rd = getenv("XDG_RUNTIME_DIR"); if (!rd || strlen(rd) == 0) rd = "/tmp"; - if (!safe_snprintf(state_file, sizeof(state_file), "%s/keyvibe-%s-%d", rd, + if (!safe_snprintf(state_file, sizeof(state_file), "%s/vbx-%s-%d", rd, filename_suffix, (int)getuid())) return; FILE *f = fopen(state_file, "w"); @@ -83,7 +83,7 @@ const char *get_runtime_dir(void) { void build_pidfile_path(char *buffer, size_t buflen) { const char *rd = get_runtime_dir(); - safe_snprintf(buffer, buflen, "%s/keyvibe-%d.pid", rd, (int)getuid()); + safe_snprintf(buffer, buflen, "%s/vbx-%d.pid", rd, (int)getuid()); } int read_pidfile(const char *path, pid_t *out_pid) { diff --git a/src/config.c b/src/config.c index 6e68c17..c1ab28f 100644 --- a/src/config.c +++ b/src/config.c @@ -13,7 +13,7 @@ char *get_user_config_path(char *buffer, size_t buflen) { const char *home = get_home_dir(); if (!home) return NULL; - if (!safe_snprintf(buffer, buflen, "%s/%s", home, ".keyvibe.json")) + if (!safe_snprintf(buffer, buflen, "%s/%s", home, ".vbx.json")) return NULL; return buffer; } diff --git a/src/main.c b/src/main.c index 89adfed..090cdc6 100644 --- a/src/main.c +++ b/src/main.c @@ -29,12 +29,12 @@ #include #define MAX_PATH_LENGTH 1024 -#define AUDIO_BASE_DIR KeyVibe_DATA_DIR "/soundpacks" +#define AUDIO_BASE_DIR VBX_DATA_DIR "/soundpacks" #define KEYBOARD_AUDIO_DIR AUDIO_BASE_DIR "/keyboard" #define MOUSE_AUDIO_DIR AUDIO_BASE_DIR "/mouse" -#define USER_KEYBOARD_AUDIO_SUBPATH "/.local/share/keyvibe/soundpacks/keyboard" -#define USER_MOUSE_AUDIO_SUBPATH "/.local/share/keyvibe/soundpacks/mouse" -#define USER_CONFIG_FILENAME ".keyvibe.json" +#define USER_KEYBOARD_AUDIO_SUBPATH "/.local/share/vbx/soundpacks/keyboard" +#define USER_MOUSE_AUDIO_SUBPATH "/.local/share/vbx/soundpacks/mouse" +#define USER_CONFIG_FILENAME ".vbx.json" extern pid_t keyboard_pid; extern pid_t sound_pid; @@ -157,7 +157,7 @@ int main(int argc, char *argv[]) { for (int i = 0; i < 30; i++) { if (!process_is_running(running_pid)) { unlink(pidfile_path); - printf("KeyVibe stopped.\n"); + printf("VBX stopped.\n"); if (sound_name_owned) { free(sound_name); } @@ -177,7 +177,7 @@ int main(int argc, char *argv[]) { if (mouse_sound_name_owned) { free(mouse_sound_name); } - return errorf("KeyVibe: process did not stop in time\n"); + return errorf("VBX: process did not stop in time\n"); } current_mute = read_runtime_mute_file(); @@ -288,9 +288,9 @@ int main(int argc, char *argv[]) { char get_key_presses_path[MAX_PATH_LENGTH]; char sound_player_path[MAX_PATH_LENGTH]; safe_snprintf_wrapper(get_key_presses_path, sizeof(get_key_presses_path), - "%s/keyvibe-input", KeyVibe_BIN_DIR); - safe_snprintf_wrapper(sound_player_path, sizeof(sound_player_path), "%s/keyvibe-audio", - KeyVibe_BIN_DIR); + "%s/vbx-input", VBX_BIN_DIR); + safe_snprintf_wrapper(sound_player_path, sizeof(sound_player_path), "%s/vbx-audio", + VBX_BIN_DIR); if (access(get_key_presses_path, X_OK) != 0 || access(sound_player_path, X_OK) != 0) { if (sound_name_owned) { @@ -300,7 +300,7 @@ int main(int argc, char *argv[]) { free(mouse_sound_name); } return errorf("Error: Cannot find or execute required binaries in %s\n", - KeyVibe_BIN_DIR); + VBX_BIN_DIR); } signal(SIGINT, cleanup_processes); signal(SIGTERM, cleanup_processes); @@ -314,7 +314,7 @@ int main(int argc, char *argv[]) { free(mouse_sound_name); } safe_fprintf(stderr, - "KeyVibe already running (pid %ld). Use --stop to stop it.\n", + "VBX already running (pid %ld). Use --stop to stop it.\n", (long)existing); return 1; } @@ -358,7 +358,7 @@ int main(int argc, char *argv[]) { safe_strncpy(current_mouse_config_path, mouse_config_path, sizeof(current_mouse_config_path)); safe_strncpy(current_mouse_sound_dir, mouse_sound_dir, sizeof(current_mouse_sound_dir)); if (verbose && !is_daemon) { - printf("KeyVibe starting...\n"); + printf("VBX starting...\n"); printf("Keyboard sound pack: %s\n", sound_name); printf("Mouse sound pack: %s\n", mouse_sound_name); printf("Keyboard config file: %s\n", config_path); @@ -368,7 +368,7 @@ int main(int argc, char *argv[]) { printf("Press Ctrl+C to exit.\n\n"); } else { if (!is_daemon) { - printf("KeyVibe started with keyboard sound pack: %s, mouse sound pack: " + printf("VBX started with keyboard sound pack: %s, mouse sound pack: " "%s\n", sound_name, mouse_sound_name); printf("Press Ctrl+C to exit.\n"); @@ -443,7 +443,7 @@ int main(int argc, char *argv[]) { } } if (!is_daemon) { - printf("KeyVibe exited.\n"); + printf("VBX exited.\n"); } if (sound_name_owned) { free(sound_name); diff --git a/src/soundpacks.c b/src/soundpacks.c index 52184c6..ceb3817 100644 --- a/src/soundpacks.c +++ b/src/soundpacks.c @@ -10,11 +10,11 @@ #include #include -#define AUDIO_BASE_DIR KeyVibe_DATA_DIR "/soundpacks" +#define AUDIO_BASE_DIR VBX_DATA_DIR "/soundpacks" #define KEYBOARD_AUDIO_DIR AUDIO_BASE_DIR "/keyboard" #define MOUSE_AUDIO_DIR AUDIO_BASE_DIR "/mouse" -#define USER_KEYBOARD_AUDIO_SUBPATH "/.local/share/keyvibe/soundpacks/keyboard" -#define USER_MOUSE_AUDIO_SUBPATH "/.local/share/keyvibe/soundpacks/mouse" +#define USER_KEYBOARD_AUDIO_SUBPATH "/.local/share/vbx/soundpacks/keyboard" +#define USER_MOUSE_AUDIO_SUBPATH "/.local/share/vbx/soundpacks/mouse" static void get_user_keyboard_audio_dir(char *buffer, size_t buflen) { buffer[0] = '\0';