feat(modules): add RDP client and QEMU/KVM modules

rdp-client.sh: installs Remmina with the FreeRDP and libvncserver plugins
for RDP and VNC sessions.

qemu.sh: installs the full QEMU/KVM stack (qemu-full, libvirt, virt-manager,
virt-viewer, dnsmasq, bridge-utils, edk2-ovmf, swtpm, vde2), enables and
starts libvirtd, auto-starts the default NAT network, and adds the user to
the libvirt and kvm groups.

Both modules are wired into tui-install.sh: count_steps, checklist,
confirmation summary, and run_module dispatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
Amir Alexander Abdelbaki 2026-05-20 15:12:21 +02:00
parent a84e6ac41c
commit eb3ae766a5
3 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,22 @@
#!/bin/bash
set -euo pipefail
# QEMU/KVM + libvirt stack + virt-manager GUI
sudo pacman -S --noconfirm --needed \
qemu-full \
libvirt \
virt-manager \
virt-viewer \
dnsmasq \
bridge-utils \
edk2-ovmf \
swtpm \
vde2
sudo systemctl enable --now libvirtd.service
# Enable the default NAT network at libvirt startup
sudo virsh net-autostart default 2>/dev/null || true
sudo usermod -aG libvirt,kvm "$USER"
echo "QEMU/KVM installed. Log out and back in for group membership to take effect."

View File

@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
# Remmina + protocol plugins
sudo pacman -S --noconfirm --needed \
remmina \
freerdp \
libvncserver
echo "Remmina installed with RDP (freerdp) and VNC support."

View File

@ -160,6 +160,8 @@ count_steps() {
[[ "$a" == *"geany"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"codeblocks"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"kate"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"rdp-client"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"qemu"* ]] && TOTAL=$(( TOTAL + 1 ))
}
# ── Answerfile ────────────────────────────────────────────────────────────────
@ -356,6 +358,9 @@ else
"geany" "Geany lightweight IDE + plugins (official)" off \
"codeblocks" "Code::Blocks C/C++ IDE (official)" off \
"kate" "Kate KDE advanced text editor (official)" off \
\
"rdp-client" "RDP Client Remmina + FreeRDP + VNC plugins" off \
"qemu" "QEMU/KVM full virt stack + virt-manager GUI" off \
3>&1 1>&2 2>&3) || SELECTED_APPS=""
fi
@ -423,6 +428,8 @@ if ! $ANSWERFILE_MODE; then
[[ "$SELECTED_APPS" == *"geany"* ]] && SUMMARY+=" ✦ Geany\n"
[[ "$SELECTED_APPS" == *"codeblocks"* ]] && SUMMARY+=" ✦ Code::Blocks\n"
[[ "$SELECTED_APPS" == *"kate"* ]] && SUMMARY+=" ✦ Kate\n"
[[ "$SELECTED_APPS" == *"rdp-client"* ]] && SUMMARY+=" ✦ RDP Client (Remmina + FreeRDP)\n"
[[ "$SELECTED_APPS" == *"qemu"* ]] && SUMMARY+=" ✦ QEMU/KVM + virt-manager\n"
fi
dialog --backtitle "$BACKTITLE" \
@ -505,6 +512,8 @@ fi
[[ "$SELECTED_APPS" == *"geany"* ]] && run_module "Geany" "$APPS/geany.sh"
[[ "$SELECTED_APPS" == *"codeblocks"* ]] && run_module "Code::Blocks" "$APPS/codeblocks.sh"
[[ "$SELECTED_APPS" == *"kate"* ]] && run_module "Kate" "$APPS/kate.sh"
[[ "$SELECTED_APPS" == *"rdp-client"* ]] && run_module "RDP Client" "$APPS/rdp-client.sh"
[[ "$SELECTED_APPS" == *"qemu"* ]] && run_module "QEMU/KVM" "$APPS/qemu.sh"
# ── Colorway (final step) ─────────────────────────────────────────────────────
# Read defaults from repo colors.conf for pre-population