feat(fish): add keymapp install script

Amolith created

Change summary

dot_config/private_fish/functions/install-keymapp.fish | 34 ++++++++++++
1 file changed, 34 insertions(+)

Detailed changes

dot_config/private_fish/functions/install-keymapp.fish 🔗

@@ -0,0 +1,34 @@
+function install-keymapp -d "Install or update keymapp from latest release"
+    set -l temp_dir (mktemp -d)
+    
+    gum spin --spinner dot --title "Downloading keymapp..." -- \
+        wcurl -o $temp_dir/keymapp-latest.tar.gz https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.tar.gz
+    or return 1
+    
+    gum spin --spinner dot --title "Extracting..." -- \
+        tar -xzf $temp_dir/keymapp-latest.tar.gz -C $temp_dir
+    or return 1
+    
+    gum spin --spinner dot --title "Installing binary..." -- \
+        sh -c "mkdir -p ~/.local/bin && cp $temp_dir/keymapp ~/.local/bin/ && chmod +x ~/.local/bin/keymapp"
+    
+    gum spin --spinner dot --title "Installing icon..." -- \
+        sh -c "mkdir -p ~/.local/share/icons/hicolor/1024x1024/apps && cp $temp_dir/icon.png ~/.local/share/icons/hicolor/1024x1024/apps/keymapp.png"
+    
+    gum spin --spinner dot --title "Creating desktop file..." -- \
+        sh -c "mkdir -p ~/.local/share/applications && echo '[Desktop Entry]
+Name=Keymapp
+Comment=ZSA Keyboard Configuration Tool
+Exec=keymapp
+Icon=$HOME/.local/share/icons/hicolor/1024x1024/apps/keymapp.png
+Terminal=false
+Type=Application
+Categories=Utility;Settings;' > ~/.local/share/applications/keymapp.desktop"
+    
+    gum spin --spinner dot --title "Updating caches..." -- \
+        sh -c "update-desktop-database ~/.local/share/applications/ 2>/dev/null; gtk-update-icon-cache ~/.local/share/icons/hicolor/ 2>/dev/null; true"
+    
+    rm -rf $temp_dir
+    
+    gum style --foreground 212 --bold "✓ Keymapp installed successfully"
+end