@@ -10,25 +10,48 @@ if ! command_exists kanata; then
1010 exit 0
1111fi
1212
13- log_step " Deploying kanata configuration"
13+ log_step " Validating kanata configuration"
14+ NEW_CONFIG=" $SYSTEM_DIR /config/kanata/iso-us-international.kbd"
15+
16+ # Basic validation: check if file exists and is not empty
17+ if [[ ! -f " $NEW_CONFIG " ]]; then
18+ log_error " Config file not found: $NEW_CONFIG "
19+ exit 1
20+ fi
21+
22+ if [[ ! -s " $NEW_CONFIG " ]]; then
23+ log_error " Config file is empty: $NEW_CONFIG "
24+ exit 1
25+ fi
1426
27+ log_info " Config file validation passed"
28+
29+ log_step " Deploying kanata configuration"
1530CONFIG_DIR=" $HOME /.config/kanata"
1631mkdir -p " $CONFIG_DIR "
1732
18- cp " $SYSTEM_DIR /config/kanata/iso-us-international.kbd " " $CONFIG_DIR /config.kbd"
33+ cp " $NEW_CONFIG " " $CONFIG_DIR /config.kbd"
1934log_success " Configuration deployed to $CONFIG_DIR /config.kbd"
2035
2136KANATA_PLIST=" /Library/LaunchDaemons/com.kanata.plist"
2237if [[ -f " $KANATA_PLIST " ]]; then
23- log_step " Starting kanata service"
24-
25- if sudo launchctl list | grep -q " com.kanata" ; then
26- log_info " Reloading kanata service"
27- sudo launchctl unload " $KANATA_PLIST " 2> /dev/null || true
38+ log_step " Restarting kanata service"
39+
40+ # Bootout (unload) - will fail silently if not loaded
41+ sudo launchctl bootout system " $KANATA_PLIST " 2> /dev/null || true
42+ sleep 0.5
43+
44+ # Bootstrap (load and start)
45+ if sudo launchctl bootstrap system " $KANATA_PLIST " 2> /dev/null; then
46+ log_success " kanata service restarted (passwordless sudo)"
47+ else
48+ # Try kickstart if already loaded
49+ if sudo launchctl kickstart -k system/com.kanata 2> /dev/null; then
50+ log_success " kanata service restarted via kickstart"
51+ else
52+ log_warning " Could not restart service - may need manual intervention"
53+ fi
2854 fi
29-
30- sudo launchctl load " $KANATA_PLIST "
31- log_success " kanata service started"
3255else
3356 log_warning " kanata LaunchDaemon not found"
3457 log_info " Run 'dot install kanata' to set up the launch service"
0 commit comments