feat: hrvatski raspored tipkovnice za RDP (hr-hr-qwertz)

Guacamole isporucuje 22 rasporeda, hrvatskog nema. Rasporedi se
kompajliraju u libguac-client-rdp, pa se ne mogu dodati naknadno —
guacd se mora ponovno prevesti.

guacd-hr/hr_hr_qwertz.keymap
  Izveden iz X11 "hr" rasporeda na stvarnom sustavu (hr -> rs(latin):
  rs(common) za brojcani red, rs(latalpha) za s/d/c/c/z s dijakriticima,
  rs(latlevel3) za AltGr), ne po sjecanju. Strukturno prati cs-cz-qwertz
  jer njegov caps model dira samo slova, dok de_de_qwertz izvrce i
  brojcani red.

guacd-hr/build.sh
  Preuzme sluzbeni izvor tražene verzije, ubaci keymap u keymaps/ i u
  popis rdp_keymaps, pa gradi koristeci Dockerfile koji dolazi uz taj
  izvor. Namjerno se ne prepisuje upstream receptura, da nadogradnja
  bude "./build.sh 1.7.0" umjesto odrzavanja vlastitog builda.

  Ovisnosti su zakljucane jer ih upstream gradi iz gita i bira najnoviji
  tag, pa gradnja pukne sama od sebe: libwebsockets v5 trazi GnuTLS
  kojeg build okruzenje 1.6.0 nema, a FreeRDP 2.x je odmakao na razvojne
  tagove koje configure odbija. Zakljucani su na v4.x i 2.11.7 — ono sto
  nosi sluzbeni guacd:1.6.0 — i pregazivi su preko env varijabli.

install.sh
  Novo pitanje pri instalaciji; ako se prihvati, gradi image i compose
  koristi njega umjesto sluzbenog guacd-a. Postojeci image se ne gradi
  ponovno.

Provjereno cistom instalacijom na Ubuntu 24.04: gradnja prolazi u sklopu
installera, image sadrzi hr-hr-qwertz uz svih 22 standardnih, FreeRDP je
2.11.7 kao u sluzbenom, i svih 9 GUI stranica vraca 200.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-29 17:44:05 +02:00
parent 1a213f807f
commit 9b04c158a5
5 changed files with 220 additions and 2 deletions
+24 -1
View File
@@ -140,6 +140,15 @@ if [[ "$DO_PROXY" =~ ^[Yy]$ ]]; then
done
fi
echo ""
echo -e "${CYAN}Hrvatski raspored tipkovnice${NC} za RDP konekcije?"
echo " Guacamole ne isporucuje hrvatski raspored, pa se guacd mora"
echo " ponovno prevesti. Gradnja traje 15-30 min i stvara vlastiti image."
read -rp "Ugraditi hrvatski raspored? [y/N]: " DO_HRKEYMAP
DO_HRKEYMAP="${DO_HRKEYMAP:-n}"
GUACD_IMAGE="guacamole/guacd:${GUAC_VERSION}"
[[ "$DO_HRKEYMAP" =~ ^[Yy]$ ]] && GUACD_IMAGE="guacd:${GUAC_VERSION}-hr"
echo ""
read -rp "$(echo -e "${CYAN}Web GUI${NC} — instalirati web sučelje za upravljanje? [y/N]: ")" DO_WEBGUI
DO_WEBGUI="${DO_WEBGUI:-n}"
@@ -280,12 +289,26 @@ SECRET_KEY=${SECRET_KEY}
EOF
chmod 600 "${INSTALL_DIR}/.env"
if [[ "$DO_HRKEYMAP" =~ ^[Yy]$ ]]; then
section "Hrvatski raspored tipkovnice"
if docker image inspect "$GUACD_IMAGE" >/dev/null 2>&1; then
info "Image ${GUACD_IMAGE} vec postoji, preskacem gradnju"
else
[[ -x "${SRC_DIR}/guacd-hr/build.sh" ]] \
|| error "Nedostaje ${SRC_DIR}/guacd-hr/build.sh"
info "Gradnja ${GUACD_IMAGE} — potrajat ce"
"${SRC_DIR}/guacd-hr/build.sh" "$GUAC_VERSION" \
|| error "Gradnja guacd-a s hrvatskim rasporedom nije uspjela"
fi
info "Na konekcijama postavite server-layout = hr-hr-qwertz"
fi
section "docker-compose.yml"
cat > "${INSTALL_DIR}/docker-compose.yml" << EOF
version: '3.8'
services:
guacd:
image: guacamole/guacd:${GUAC_VERSION}
image: ${GUACD_IMAGE}
container_name: guacd
restart: unless-stopped
volumes: