Add RDP config editor to all-in-one installer rerun menu

When rerunning the installer on existing setup:
- Display current RDP configuration (server, username, local user)
- Add option 2: "RDP 설정 수정" to modify settings
- Allow editing: RDP server, username, password, local user
- Show current values as defaults (press Enter to keep)
- Update both /var/lib/rdp-toggle/config.json and .xinitrc
- After update, show toggle menu to apply changes

Menu options on rerun:
1. RDP toggle menu
2. Edit RDP settings (NEW)
3. Reinstall
4. Exit

This allows users to easily change RDP target without reinstalling.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude 2025-11-17 04:27:30 +00:00
parent 86eb7ea806
commit fbea9419c3

View File

@ -742,6 +742,17 @@ main() {
[ -f "/opt/rdp-toggle-api/rdp-toggle-api.py" ] && \
[ -f "/etc/systemd/system/getty@tty1.service.d/override.conf" ]; then
# 현재 설정 로드
if [ -f "/var/lib/rdp-toggle/config.json" ]; then
CURRENT_RDP_SERVER=$(python3 -c "import json; print(json.load(open('/var/lib/rdp-toggle/config.json'))['rdp_server'])" 2>/dev/null || echo "알 수 없음")
CURRENT_RDP_USERNAME=$(python3 -c "import json; print(json.load(open('/var/lib/rdp-toggle/config.json'))['rdp_username'])" 2>/dev/null || echo "알 수 없음")
CURRENT_LOCAL_USER=$(python3 -c "import json; print(json.load(open('/var/lib/rdp-toggle/config.json'))['local_user'])" 2>/dev/null || echo "알 수 없음")
else
CURRENT_RDP_SERVER="알 수 없음"
CURRENT_RDP_USERNAME="알 수 없음"
CURRENT_LOCAL_USER="알 수 없음"
fi
echo ""
echo -e "${GREEN}=========================================="
echo "✅ RDP 자동화 시스템이 이미 설치되어 있습니다!"
@ -749,12 +760,18 @@ main() {
echo ""
echo -e "${CYAN}📍 API 서버: http://$(get_primary_ip):8090${NC}"
echo ""
echo -e "${CYAN}현재 설정:${NC}"
echo " RDP 서버: $CURRENT_RDP_SERVER"
echo " RDP 사용자: $CURRENT_RDP_USERNAME"
echo " 로컬 사용자: $CURRENT_LOCAL_USER"
echo ""
echo "다음 중 선택하세요:"
echo " 1) RDP 토글 메뉴 (RDP ↔ Shell 전환)"
echo " 2) 재설치 (기존 설정 삭제 후 새로 설치)"
echo " 3) 종료"
echo " 2) RDP 설정 수정"
echo " 3) 재설치 (기존 설정 삭제 후 새로 설치)"
echo " 4) 종료"
echo ""
echo -n "선택 [1/2/3]: "
echo -n "선택 [1/2/3/4]: "
read -r reinstall_choice </dev/tty
case "$reinstall_choice" in
@ -764,12 +781,93 @@ main() {
exit 0
;;
2)
# RDP 설정 수정
echo ""
echo -e "${CYAN}=========================================="
echo "RDP 설정 수정"
echo -e "==========================================${NC}"
echo ""
# 새로운 RDP 정보 입력
echo -n "RDP 서버 주소 (현재: $CURRENT_RDP_SERVER): "
read -r NEW_RDP_SERVER </dev/tty
[ -z "$NEW_RDP_SERVER" ] && NEW_RDP_SERVER="$CURRENT_RDP_SERVER"
echo -n "RDP 사용자명 (현재: $CURRENT_RDP_USERNAME): "
read -r NEW_RDP_USERNAME </dev/tty
[ -z "$NEW_RDP_USERNAME" ] && NEW_RDP_USERNAME="$CURRENT_RDP_USERNAME"
echo -n "RDP 비밀번호: "
read -s NEW_RDP_PASSWORD </dev/tty
echo ""
echo -n "로컬 사용자명 (현재: $CURRENT_LOCAL_USER): "
read -r NEW_LOCAL_USER </dev/tty
[ -z "$NEW_LOCAL_USER" ] && NEW_LOCAL_USER="$CURRENT_LOCAL_USER"
echo ""
echo "새로운 설정:"
echo " RDP 서버: $NEW_RDP_SERVER"
echo " RDP 사용자: $NEW_RDP_USERNAME"
echo " 로컬 사용자: $NEW_LOCAL_USER"
echo ""
echo -n "이 설정으로 업데이트하시겠습니까? [y/N]: "
read -r confirm </dev/tty
if [[ "$confirm" =~ ^[Yy]$ ]]; then
# 설정 파일 업데이트
cat > /var/lib/rdp-toggle/config.json << EOF
{
"rdp_server": "$NEW_RDP_SERVER",
"rdp_username": "$NEW_RDP_USERNAME",
"rdp_password": "$NEW_RDP_PASSWORD",
"local_user": "$NEW_LOCAL_USER"
}
EOF
# RDP 설정 파일도 업데이트
RDP_SERVER="$NEW_RDP_SERVER"
RDP_USERNAME="$NEW_RDP_USERNAME"
RDP_PASSWORD="$NEW_RDP_PASSWORD"
LOCAL_USER="$NEW_LOCAL_USER"
# .xinitrc 업데이트
user_home="/home/$LOCAL_USER"
if [ -f "$user_home/.xinitrc" ]; then
cat > "$user_home/.xinitrc" << EOF
#!/bin/bash
xset -dpms
xset s off
xset s noblank
unclutter -idle 0.1 -root &
openbox-session &
sleep 2
xfreerdp3 /v:$RDP_SERVER /u:$RDP_USERNAME /p:"$RDP_PASSWORD" +f /cert:ignore +dynamic-resolution /sound:sys:alsa +clipboard
pkill -SIGTERM Xorg
EOF
chmod +x "$user_home/.xinitrc"
chown "$LOCAL_USER:$LOCAL_USER" "$user_home/.xinitrc"
fi
msg_ok "RDP 설정이 업데이트되었습니다!"
echo ""
echo "변경사항을 적용하려면 RDP 모드를 다시 활성화하세요."
echo ""
# 토글 메뉴로 이동
show_rdp_toggle_menu
else
msg_warn "설정 변경이 취소되었습니다."
fi
exit 0
;;
3)
echo ""
msg_warn "기존 설정을 삭제하고 재설치를 시작합니다..."
# 기존 설정 삭제는 하지 않고 덮어쓰기로 진행
echo ""
;;
3)
4)
echo ""
msg_ok "종료합니다."
exit 0