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