install-keymapp.fish

 1function install-keymapp -d "Install or update keymapp from latest release"
 2    set -l temp_dir (mktemp -d)
 3    
 4    gum spin --spinner dot --title "Downloading keymapp..." -- \
 5        wcurl -o $temp_dir/keymapp-latest.tar.gz https://oryx.nyc3.cdn.digitaloceanspaces.com/keymapp/keymapp-latest.tar.gz
 6    or return 1
 7    
 8    gum spin --spinner dot --title "Extracting..." -- \
 9        tar -xzf $temp_dir/keymapp-latest.tar.gz -C $temp_dir
10    or return 1
11    
12    gum spin --spinner dot --title "Installing binary..." -- \
13        sh -c "mkdir -p ~/.local/bin && cp $temp_dir/keymapp ~/.local/bin/ && chmod +x ~/.local/bin/keymapp"
14    
15    gum spin --spinner dot --title "Installing icon..." -- \
16        sh -c "mkdir -p ~/.local/share/icons/hicolor/1024x1024/apps && cp $temp_dir/icon.png ~/.local/share/icons/hicolor/1024x1024/apps/keymapp.png"
17    
18    gum spin --spinner dot --title "Creating desktop file..." -- \
19        sh -c "mkdir -p ~/.local/share/applications && echo '[Desktop Entry]
20Name=Keymapp
21Comment=ZSA Keyboard Configuration Tool
22Exec=keymapp
23Icon=$HOME/.local/share/icons/hicolor/1024x1024/apps/keymapp.png
24Terminal=false
25Type=Application
26Categories=Utility;Settings;' > ~/.local/share/applications/keymapp.desktop"
27    
28    gum spin --spinner dot --title "Updating caches..." -- \
29        sh -c "update-desktop-database ~/.local/share/applications/ 2>/dev/null; gtk-update-icon-cache ~/.local/share/icons/hicolor/ 2>/dev/null; true"
30    
31    rm -rf $temp_dir
32    
33    gum style --foreground 212 --bold "✓ Keymapp installed successfully"
34end