ClipmanLinux/install.sh
Rama main · réplica de lectura del repositorio original.
#!/bin/sh
set -eu
root="${XDG_DATA_HOME:-$HOME/.local/share}/clipman-linux"
applications="${XDG_DATA_HOME:-$HOME/.local/share}/applications"
icons="${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor/256x256/apps"
metainfo="${XDG_DATA_HOME:-$HOME/.local/share}/metainfo"
mime="${XDG_DATA_HOME:-$HOME/.local/share}/mime/packages"
bin="$HOME/.local/bin"
missing=""
command -v python3 >/dev/null 2>&1 || missing="$missing python3"
command -v xdotool >/dev/null 2>&1 || missing="$missing xdotool"
python3 -c 'import gi; gi.require_version("Gtk", "4.0"); from gi.repository import Gtk' >/dev/null 2>&1 || missing="$missing GTK-4/PyGObject"
python3 -c 'import gi; gi.require_version("Gtk", "3.0"); gi.require_version("Keybinder", "3.0"); from gi.repository import Gtk, Keybinder' >/dev/null 2>&1 || missing="$missing Keybinder-3"
if [ -n "$missing" ]; then
printf 'Clipman needs:%s\n' "$missing" >&2
printf 'Arch: sudo pacman -S gtk4 python-gobject libkeybinder3 xdotool\n' >&2
printf 'Debian/Ubuntu: sudo apt install gir1.2-gtk-4.0 gir1.2-keybinder-3.0 python3-gi xdotool\n' >&2
printf 'Fedora: sudo dnf install gtk4 python3-gobject keybinder3 xdotool\n' >&2
exit 1
fi
mkdir -p "$root/libexec" "$root/sounds" "$applications" "$icons" "$metainfo" "$mime" "$bin"
install -m 0755 clipman.py "$root/clipman.py"
install -m 0755 clipman-hotkeys.py "$root/clipman-hotkeys.py"
install -m 0755 clipman-updater.py "$root/clipman-updater.py"
install -m 0644 update_service.py context_help.py VERSION BUILD_STAMP "$root/"
install -m 0755 clipman-linux "$bin/clipman-linux"
install -m 0755 libexec/clipman-gui-backend "$root/libexec/clipman-gui-backend"
install -m 0644 Manual.html LICENSE.txt "$root/"
install -m 0644 sounds/*.wav "$root/sounds/"
install -m 0644 me.onj.clipman.linux.desktop "$applications/"
install -m 0644 me.onj.clipman.linux.png "$icons/me.onj.clipman.linux.png"
install -m 0644 me.onj.clipman.linux.metainfo.xml "$metainfo/"
install -m 0644 me.onj.clipman.linux.xml "$mime/"
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database "$applications" >/dev/null 2>&1 || true
command -v update-mime-database >/dev/null 2>&1 && update-mime-database "${XDG_DATA_HOME:-$HOME/.local/share}/mime" >/dev/null 2>&1 || true
command -v gtk-update-icon-cache >/dev/null 2>&1 && gtk-update-icon-cache -f -t "${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor" >/dev/null 2>&1 || true
printf 'Clipman installed. Open Clipman from the application menu or run: clipman-linux\n'
case ":$PATH:" in
*":$bin:"*) ;;
*) printf 'Your shell PATH does not include %s. The application-menu entry will still work.\n' "$bin" ;;
esac