toon/cursorMaker.sh

76 lines
3.6 KiB
Bash
Executable File

#!/bin/sh
SRC=src
NAME="${1}"
error()
{
printf "$@" >&2
}
syntax()
{
error "Syntax: ${0##*/} <CURSOR NAME> <DESTINATION DIR>\n"
exit 1
}
([ -n "${NAME}" ] && [ -f "names/${NAME}" ] && [ -d "${2}" ]) || syntax
winOfX11()
{
case "${1}" in
"center_ptr") printf "Alternate_Select";;
"wait") printf "Busy";;
"size_fdiag") printf "Diagonal_Resize_1";;
"size_bdiag") printf "Diagonal_Resize_2";;
"pencil") printf "Handwriting";;
"help") printf "Help_Select";;
"size_hor") printf "Horizontal_Resize";;
"pointer") printf "Link_Select";;
"move") printf "Move";;
"default") printf "Normal_Select";;
"fleur") printf "Precision_Select";;
"text") printf "Text_Select";;
"forbidden") printf "Unavailable";;
"size_ver") printf "Vertical_Resize";;
"half-busy") printf "Working_In_Background";;
esac
}
aliasOf()
{
case "${1}" in
"left_ptr"|"top_left_arrow"|"left-arrow") printf "default";;
"alias"|"0876e1c15ff2fc01f906f1c363074c0f"|"3085a0e285430894940527032f8b26df"|"640fb0e74195791501fd1ed57b41487f"|"a2a266d0498c3104214a47bd64ab0fc8"|"dnd-link"|"crosshair"|"diamond_cross"|"target"|"cross"|"link") printf "fleur";;
"not-allowed"|"crossed_circle"|"03b6e0fcb3499374a867c041f52298f0"|"circle"|"no-drop"|"03b6e0fcb3499374a867c041f52298f0"|"03b6e0fcb3499374a867d041f52298f0"|"kill"|"pirate") printf "forbidden";;
"watch"|"clock"|"0426c94ea35c87780ff01dc239897213") printf "wait";;
"progress"|"left_ptr_watch"|"00000000000000020006000e7e9ffc3f"|"08e8e1c95fe2fc01f976f1e063a24ccd"|"3ecb610c1bf2410f44200f48c40d3599"|"9116a3ea924ed2162ecab71ba103b17f") printf "half-busy";;
"question_arrow"|"whats_this"|"gumby"|"5c6cd98b3f3ebcb1f9c7f1c204630408"|"d9ce0ab605698f320427677b458ad60b"|"dnd-ask") printf "help";;
"size_ver"|"v_double_arrow"|"double_arrow"|"00008160000006810000408080010102"|"top_side"|"n-resize"|"bottom_side"|"s-resize"|"sb_v_double_arrow"|"043a9f68147c53184671403ffa811cc5"|"14fef782d02440884392942c11205230"|"split_h"|"col-resize"|"sb_up_arrow"|"sb_down_arrow"|"ns-resize"|"up-arrow") printf "size_ver";;
"ew-resize"|"h_double_arrow"|"028006030e0e7ebffc7f7070c0600140"|"right_side"|"e-resize"|"left_side"|"w-resize"|"sb_h_double_arrow"|"2870a09082c103050810ffdffffe0204"|"c07385c7190e701020ff7ffffd08103c"|"split_v"|"row-resize"|"sb_left_arrow"|"sb_right_arrow") printf "size_hor";;
"nwse-resize"|"38c5dff7c7b8962045400281044508d2"|"c7088f0f3e6c8088236ef8e1e3e70000"|"top_left_corner"|"nw-resize"|"bottom_right_corner"|"se-resize"|"lr_angle") printf "size_fdiag";;
"nesw-resize"|"50585d75b494802d0151028115016902"|"fcf1c3c7cd4491d801f1e1c78f100000"|"top_right_corner"|"ne-resize"|"bottom_left_corner"|"sw-resize") printf "size_bdiag";;
"4498f0e0c1937ffe01fd06f973665830"|"9081237383d90e509aa00f00170e968f"|"fcf21c00b30f7e3f83fe0dfd12e71cff"|"size_all"|"dnd-move"|"all-scroll"|"grabbing"|"208530c400c041818281048008011002"|"closedhand"|"dnd-none") printf "move";;
"pointing_hand"|"hand"|"hand1"|"e29285e634086352946a0e7090d73106"|"5aca4d189052212118709018842178c0"|"9d800788f1b08800ae810202380a0822"|"openhand"|"hand2") printf "pointer";;
"up_arrow"|"color-picker"|"cell"|"08ffe1e65f80fcfdf9fff11263e74c48"|"context-menu") printf "center_ptr";;
"ibeam"|"xterm"|"048008013003cff3c00c801001200000"|"vertical-text") printf "text";;
esac
}
TARGET="${2%/}/${NAME}"
winName="$(winOfX11 ${NAME})"
if [ -n "${winName}" ]
then
dir="${SRC}/${winName}"
xcursorgen -p "${dir}" "${dir}/config.txt" "${TARGET}"
else
canonical="$(aliasOf ${NAME})"
if [ -n "${canonical}" ]
then
ln -sf "${canonical}" "${TARGET}"
else
error "Cannot generate missing icon ${NAME}"
exit 1
fi
fi