Browse Source

baidunetdisk:4.12.5

John 3 years ago
parent
commit
04ed1ba5a8

+ 1 - 1
.github/workflows/baidunetdisk.yml

@@ -8,7 +8,7 @@ on:
   workflow_dispatch:
 
 env:
-  BAIDUNETDISK_VER: 4.11.5
+  BAIDUNETDISK_VER: 4.12.5
 
 jobs:
   job1:

+ 10 - 9
baidunetdisk/Dockerfile

@@ -1,13 +1,12 @@
-FROM jlesage/baseimage-gui:debian-10
+FROM jlesage/baseimage-gui:debian-10-v4.0.0-pre.6
 
-ARG BAIDUNETDISK_VER=4.11.5
+ARG BAIDUNETDISK_VER=4.12.5
 
 ENV APP_NAME="Baidunetdisk"
-ENV DISPLAY_WIDTH="1100"
-ENV DISPLAY_HEIGHT="800"
+ENV NOVNC_LANGUAGE="zh_Hans"
 
-COPY root /
-COPY startapp.sh /startapp.sh
+COPY --chmod=755 root /
+COPY --chmod=755 startapp.sh /startapp.sh
 
 RUN apt-get update \
 && apt-get install -y wget libnss3 libxss1 desktop-file-utils libasound2 ttf-wqy-zenhei libgtk-3-0 libgbm1 libnotify4 \
@@ -15,10 +14,12 @@ RUN apt-get update \
 && wget https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/${BAIDUNETDISK_VER}/baidunetdisk_${BAIDUNETDISK_VER}_amd64.deb \
 && dpkg -i  baidunetdisk_${BAIDUNETDISK_VER}_amd64.deb \
 && rm  baidunetdisk_${BAIDUNETDISK_VER}_amd64.deb \
-#XDAMAGE is not working well. -noxdamage
-&& sed -i 's@usr\/bin\/x11vnc  \\@usr\/bin\/x11vnc  \\\n                    -noxdamage \\@'   /etc/services.d/x11vnc/run \
 && install_app_icon.sh https://raw.githubusercontent.com/gshang2017/docker/master/baidunetdisk/icon/baidunetdisk.png \
 #fix window decorations
-&& sed -i 's@<decor>no<\/decor>@<decor>yes<\/decor>@g'  /etc/xdg/openbox/rc.xml \
+&& sed -i 's/normal/desktop/g' /etc/jwm/main-window-group.sh \
+#fix vncpasswd not found
+&& ln -s /usr/tigervnc/bin/vncpasswd /opt/tigervnc/bin/vncpasswd \
+#novnc_language
+&& mv /opt/noVNC/index.html /opt/noVNC/index.html.en \
 #fix dpkg
 && sed -i '/messagebus/d' /var/lib/dpkg/statoverride

+ 8 - 9
baidunetdisk/README.md

@@ -1,5 +1,9 @@
 ## 群晖nas自用:
 
+### GitHub:
+
+[https://github.com/gshang2017/docker](https://github.com/gshang2017/docker)
+
 ### 感谢以下项目:
 
 [https://github.com/jlesage/docker-baseimage-gui](https://github.com/jlesage/docker-baseimage-gui "https://github.com/jlesage/docker-baseimage-gui")                                       
@@ -8,7 +12,7 @@
 
 |名称|版本|说明|
 |:-|:-|:-|
-|baidunetdisk|4.11.5|amd64|
+|baidunetdisk|4.12.5|amd64|
 
 #### 注意:
 
@@ -61,8 +65,8 @@
 | `-e VNC_PASSWORD=VNC密码` |VNC密码|
 | `-e USER_ID=1000` |uid设置,默认为1000|
 | `-e GROUP_ID=1000` |gid设置,默认为1000|
-| `-e DISPLAY_WIDTH=1100` |显示宽度,默认为1100|
-| `-e DISPLAY_HEIGHT=800` |显示高度,默认为800|
+| `-e NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|
+
 
 更多参数设置详见:[https://registry.hub.docker.com/r/jlesage/baseimage-gui](https://registry.hub.docker.com/r/jlesage/baseimage-gui "https://registry.hub.docker.com/r/jlesage/baseimage-gui")                                     
 
@@ -90,9 +94,4 @@
 | `VNC_PASSWORD=VNC密码` |VNC密码|
 | `USER_ID=1000` |uid设置,默认为1000|
 | `GROUP_ID=1000` |gid设置,默认为1000|
-| `DISPLAY_WIDTH=1100` |显示宽度,默认为1100|
-| `DISPLAY_HEIGHT=800` |显示高度,默认为800|
-
-### 注意:
-
-1. 剪贴板无法使用中文
+| `NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|

+ 11 - 0
baidunetdisk/root/etc/cont-init.d/10-novnc-language-set.sh

@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e # Exit immediately if a command exits with a non-zero status.
+set -u # Treat unset variables as an error.
+
+if [ "$NOVNC_LANGUAGE" = "zh_Hans" ]; then
+  cp -rf /opt/noVNC/index.html.zh /opt/noVNC/index.html
+else
+  cp -rf /opt/noVNC/index.html.en /opt/noVNC/index.html
+fi
+chmod 755 /opt/noVNC/index.html

+ 3 - 0
baidunetdisk/root/etc/jwm/main-window-selection.jwmrc

@@ -0,0 +1,3 @@
+<Type>normal</Type>
+<Name>baidunetdisk</Name>
+<WmName>百度网盘</WmName>

+ 180 - 0
baidunetdisk/root/opt/noVNC/index.html.zh

@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html lang="en" class="noVNC_loading">
+<head>
+
+    <!--
+    noVNC example: simple example using default UI
+    Copyright (C) 2019 The noVNC Authors
+    noVNC is licensed under the MPL 2.0 (see LICENSE.txt)
+    This file is licensed under the 2-Clause BSD license (see LICENSE.txt).
+    -->
+
+    <title></title>
+
+    <meta charset="utf-8">
+
+    <!-- BEGIN Favicons -->
+    <!-- END Favicons -->
+
+    <!-- Always force latest IE rendering engine -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+
+    <!-- Apple iOS Safari settings -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+
+    <!-- Stylesheets -->
+    <link rel="stylesheet" href="app/styles/font-awesome.min.css?v=UNIQUE_VERSION">
+    <link rel="stylesheet" href="app/styles/bootstrap-nightshade.min.css?v=UNIQUE_VERSION">
+    <link rel="stylesheet" href="app/styles/base.css?v=UNIQUE_VERSION">
+
+    <!-- Images that will later appear via CSS -->
+    <link rel="preload" as="image" href="app/images/info.svg">
+    <link rel="preload" as="image" href="app/images/error.svg">
+    <link rel="preload" as="image" href="app/images/warning.svg">
+
+    <!-- Scripts -->
+    <script src="app/bootstrap.bundle.min.js?v=UNIQUE_VERSION"></script>
+    <script src="app/error-handler.js?v=UNIQUE_VERSION"></script>
+    <script type="module" crossorigin="anonymous" src="app/ui.js?v=UNIQUE_VERSION"></script>
+</head>
+
+<body>
+    <!-- Fatal error message box -->
+    <div id="noVNC_fallback_error" class="noVNC_center">
+        <div>
+            <div>Unexpected error encountered:</div>
+            <br>
+            <div id="noVNC_fallback_errormsg"></div>
+        </div>
+    </div>
+
+    <!-- Control Bar -->
+    <div id="noVNC_control_bar_anchor" class="noVNC_vcenter noVNC_hidden">
+        <div id="noVNC_control_bar" class="d-flex flex-row">
+            <!-- Control bar content. -->
+            <div class="card noVNC_scroll" style="width: 21rem; font-size: 14px;">
+                <!-- Control bar header -->
+                <div class="card-header d-flex align-items-center">
+                    <img class="pe-2" style="height: 25px;" src="app/images/icons/master_icon.png?v=UNIQUE_VERSION" id="noVNC_app_logo">
+                    <h5 class="m-0" name="noVNC_app_name">百度网盘</h5>
+                    <div class="ms-auto"><!--<i class="fa fa-unlock-alt fs-4"></i>--></div>
+                </div>
+                <!-- Control bar body -->
+                <ul class="list-group list-group-flush">
+                    <!-- Action icons -->
+                    <li class="list-group-item" id="noVNC_action_icons_section">
+                        <div class="d-flex justify-content-around align-items-center">
+                            <a class="btn shadow-none p-0" href="#" title="显示键盘" id="noVNC_keyboard_button"><i class="fa fa-keyboard-o fa-fw fs-4"></i></a>
+                            <a class="btn shadow-none p-0 noVNC_hidden" href="#" title="全屏" id="noVNC_fullscreen_button"><i class="fa fa-arrows-alt fa-fw fs-4"></i></a>
+                            <a class="btn shadow-none p-0 noVNC_hidden" href="#" title="拖动" id="noVNC_view_drag_button"><i class="fa fa-hand-rock-o fa-fw fs-4"></i></a>
+                        </div>
+                    </li>
+                    <!-- Clipboard -->
+                    <li class="list-group-item">
+                        <!--                        <label for="noVNC_clipboard_text" class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#clipboardCollapse">Clipboard</label>-->
+                        <label class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#clipboardCollapse">剪贴板</label>
+                        <div class="input-group input-group-sm collapse show" id="clipboardCollapse">
+                            <textarea class="form-control" wrap="off" rows="3" id="noVNC_clipboard_text"></textarea>
+                            <button class="btn btn-outline-secondary" type="button" id="noVNC_clipboard_clear_button">清除</button>
+                        </div>
+                    </li>
+                    <!-- Settings -->
+                    <li class="list-group-item">
+                        <label class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#settingsCollapse">设置</label>
+                        <div class="collapse show" id="settingsCollapse">
+                            <!-- Clip to window -->
+                            <div class="form-check form-switch mb-2">
+                                <input class="form-check-input" type="checkbox" role="switch" id="noVNC_setting_view_clip">
+                                <label class="form-check-label text-nowrap" for="noVNC_setting_view_clip">剪贴到窗口</label>
+                            </div>
+                            <!-- Scaling mode -->
+                            <div class="input-group input-group-sm mb-2">
+                                <label class="input-group-text" for="noVNC_setting_resize">缩放模式</label>
+                                <select class="form-select" id="noVNC_setting_resize">
+                                    <option value="off">无</option>
+                                    <option value="scale">本地缩放</option>
+                                    <option value="remote">远程调整大小</option>
+                                </select>
+                            </div>
+                            <!-- Quality -->
+                            <div>
+                                <label for="noVNC_setting_quality" class="text-nowrap">质量</label>
+                                <input type="range" min="0" max="9" value="6" class="form-range" id="noVNC_setting_quality">
+                            </div>
+                            <!-- Compression level -->
+                            <div class="mb-1">
+                                <label for="noVNC_setting_compression" class="text-nowrap">压缩等级</label>
+                                <input type="range" min="0" max="9" value="2" class="form-range" id="noVNC_setting_compression">
+                            </div>
+                            <!-- Logging -->
+                            <div class="input-group input-group-sm">
+                                <label class="input-group-text" for="noVNC_setting_logging">日志级别</label>
+                                <select class="form-select" id="noVNC_setting_logging">
+                                    <option value="error">错误</option>
+                                    <option value="warn">警告</option>
+                                    <option value="info">信息</option>
+                                    <option value="debug">调试</option>
+                                </select>
+                            </div>
+                        </div>
+                    </li>
+                </ul>
+                <!-- Control bar footer -->
+                <div id="noVNC_version_footer" class="card-footer noVNC_hidden">
+                    <div id="noVNC_version_app" class="noVNC_hidden"><small class="text-muted text-nowrap">Application vX.Y.Z</small></div>
+                    <div id="noVNC_version_docker_image" class="noVNC_hidden"><small class="text-muted text-nowrap">Docker Image vX.Y.Z</small></div>
+                </div>
+            </div>
+            <!-- Control bar handle -->
+            <div id="noVNC_control_bar_handle" class="handle">
+                <div class="dots"></div>
+            </div>
+        </div>
+    </div> <!-- End of Control Bar -->
+
+    <!-- Status Dialog -->
+    <div id="noVNC_status"></div>
+
+    <!-- Password Dialog -->
+    <div class="noVNC_center noVNC_connect_layer">
+        <div id="noVNC_credentials_dlg">
+            <div class="card">
+                <div class="card-header" name="noVNC_app_name">百度网盘</div>
+                    <div class="card-body">
+                        <h5 class="card-title">需要密码</h5>
+                        <p class="card-text">请输入密码以进行连接.</p>
+                        <form>
+                            <div id="noVNC_username_block" mclass="mb-3">
+                                <input type="text" class="form-control" placeholder="Username" id="noVNC_username_input">
+                            </div>
+                            <div id="noVNC_password_block" class="mb-3">
+                                <input type="password" class="form-control" placeholder="Password" id="noVNC_password_input">
+                            </div>
+                            <button type="submit" id="noVNC_credentials_button" class="btn btn-primary">提交</button>
+                        </form>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- Transition Screens -->
+    <div id="noVNC_transition">
+        <div id="noVNC_transition_text"></div>
+        <div class="noVNC_spinner"></div>
+    </div>
+
+    <!-- This is where the RFB elements will attach -->
+    <div id="noVNC_container">
+        <!-- Note that Google Chrome on Android doesn't respect any of these,
+             html attributes which attempt to disable text suggestions on the
+             on-screen keyboard. Let's hope Chrome implements the ime-mode
+             style for example -->
+        <textarea id="noVNC_keyboardinput" autocapitalize="off"
+            autocomplete="off" spellcheck="false" tabindex="-1"></textarea>
+    </div>
+
+</body>
+</html>

+ 0 - 1
baidunetdisk/root/opt/novnc/.gitignore

@@ -1 +0,0 @@
-

+ 0 - 215
baidunetdisk/root/opt/novnc/index.vnc

@@ -1,215 +0,0 @@
-<!-- index.vnc - default html page for HTML VNC client.  On any file ending in
-     .vnc, the HTTP server embedded in Xvnc will substitute the following
-     variables when preceded by a dollar: USER, DESKTOP, DISPLAY, APPLETWIDTH,
-     APPLETHEIGHT, WIDTH, HEIGHT, PORT, PARAMS.  Use two dollar signs ($$) to
-     get a dollar sign in the generated html. -->
-
-<!DOCTYPE html>
-<html>
-<head>
-  <!--
-    This UI for noVNC is optimized to access the Graphical User Interface (GUI)
-    of a single running application.  This is perfect for applications running
-    inside a Docker container.
-
-    Connect parameters are determined automatically.  However, they can, like
-    all supported parameters, be overwritten with a query string:
-        http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
-  -->
-
-  <title>$DESKTOP</title>
-
-  <meta charset="utf-8" />
-
-  <!-- Always force latest IE rendering engine -->
-  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-
-  <!-- Apple iOS - Hide Safari User Interface Components -->
-  <meta name="apple-mobile-web-app-capable" content="yes" />
-  <!-- Apple iOS - Status Bar Appearance -->
-  <!--<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />-->
-
-  <!-- BEGIN Favicons -->
-<link rel="apple-touch-icon" sizes="180x180" href="images/icons/apple-touch-icon.png?v=97a3e42eca">
-<link rel="icon" type="image/png" sizes="32x32" href="images/icons/favicon-32x32.png?v=97a3e42eca">
-<link rel="icon" type="image/png" sizes="16x16" href="images/icons/favicon-16x16.png?v=97a3e42eca">
-<link rel="manifest" href="images/icons/site.webmanifest?v=97a3e42eca">
-<link rel="mask-icon" href="images/icons/safari-pinned-tab.svg?v=97a3e42eca" color="#5bbad5">
-<link rel="shortcut icon" href="images/icons/favicon.ico?v=97a3e42eca">
-<meta name="msapplication-TileColor" content="#2d89ef">
-<meta name="msapplication-TileImage" content="images/icons/mstile-144x144.png?v=97a3e42eca">
-<meta name="msapplication-config" content="images/icons/browserconfig.xml?v=97a3e42eca">
-<meta name="theme-color" content="#ffffff">
-  <!-- END Favicons -->
-
-  <!-- JQuery -->
-  <script src="js/jquery.min.js?v=1cc1f23df5"></script>
-  <script src="js/jquery-ui.custom.js?v=1cc1f23df5"></script>
-  <script src="js/jquery.ui.touch-punch.min.js?v=1cc1f23df5"></script>
-
-  <!-- Bootstrap JS -->
-  <script src="js/bootstrap.min.js?v=1cc1f23df5"></script>
-
-  <!-- Bootstrap CSS -->
-  <link rel="stylesheet" href="css/bootstrap.min.css?v=1cc1f23df5">
-  <link rel="stylesheet" href="css/bootstrap.custom.css?v=1cc1f23df5">
-  <link rel="stylesheet" href="css/font-awesome.min.css?v=1cc1f23df5">
-
-  <!-- noVNC -->
-  <script src="js/novnc-core.min.js?v=1cc1f23df5"></script>
-  <script src="js/novnc-ui.min.js?v=1cc1f23df5"></script>
-  <script>
-    $(document).ready(function() { UI.start(); });
-  </script>
-
-</head>
-
-<body>
-  <!-- Fixed, transparent area at the top used to show the navbar when hidden. -->
-  <!--<div id="topArea" style="top:0;position:fixed;height:2px;width:100%;background:none;"></div>-->
-
-  <!-- Hidden textbox to trigger virtual keyboard and catch it inputs. -->
-  <textarea style="width:1px;height:1px;background-color:#fff;color:#fff;border:0;position:absolute;left:-40px;z-index:-1;ime-mode: disabled;"
-            id="virtualKeyboardInput" autocapitalize="off"
-            autocorrect="off" autocomplete="off" spellcheck="false"
-            mozactionhint="Enter"></textarea>
-
-  <!-- Navigation bar -->
-  <nav class="navbar navbar-default navbar-fixed-top">
-    <div class="container-fluid">
-      <!-- App name and status icon -->
-      <div class="navbar-header">
-        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-        </button>
-        <img class="img-responsive pull-left" style="height:40px;margin-top:+6px;padding-right:10px;" src="images/icons/master_icon.png?v=1cc1f23df5" alt="$DESKTOP" />
-        <div class="navbar-brand">
-          <span id="appName">$DESKTOP</span>
-          <span>&nbsp;</span>
-          <i id="statusIcon" class="fa fa-spinner fa-spin fa-lg text-primary" data-toggle="tooltip" data-placement="bottom" title="Loading..."></i>
-          <span id="statusIconSR" class="sr-only">Loading...</span>
-        </div>
-      </div>
-      <!-- Buttons -->
-      <div class="collapse navbar-collapse" id="myNavbar">
-        <ul class="nav navbar-nav navbar-right">
-          <!-- Hideable navbar -->
-          <li id="navbarHideableNavbarButton" class="hide">
-            <button id="hideableNavbarToggleButton" class="btn btn-default navbar-btn" title="使导航栏可隐藏">
-              <i class="fa fa-chevron-up fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;隐藏式导航栏</span>
-            </button>
-          </li>
-          <!-- Auto-hide navbar -->
-          <li id="navbarDynamicNavbarButton" class="hide">
-            <button id="dynamicNavbarToggleButton" class="btn btn-default navbar-btn" title="自动隐藏导航栏">
-              <i class="fa fa-chevron-up fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;自动隐藏导航栏</span>
-            </button>
-          </li>
-          <!-- Drag -->
-          <li id="navbarClippingViewportDragButton" class="hide">
-            <button id="clippingViewportDragToggleButton" class="btn btn-default navbar-btn" title="拖动应用程序的显示窗口">
-              <i class="fa fa-hand-rock-o fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;拖动</span>
-            </button>
-          </li>
-          <!-- Fullscreen -->
-          <li id="navbarFullscreenButton" class="hide">
-            <button id="fullscreenToggleButton" class="btn btn-default navbar-btn" title="切换浏览器全屏显示">
-              <i class="fa fa-arrows-alt fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;全屏</span>
-            </button>
-          </li>
-          <!-- Auto scale -->
-          <li id="navbarAutoScalingButton" class="hide">
-            <button id="autoScalingToggleButton" class="btn btn-default navbar-btn" title="自动切换应用程序的显示窗口大小">
-              <i class="fa fa-expand fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;自动缩放</span>
-            </button>
-          </li>
-          <!-- clipboard -->
-          <li id="navbarClipboardButton" class="hide">
-            <button id="clipboardModalButton" class="btn btn-default navbar-btn" data-toggle="modal" data-target="#clipboardModal" title="打开应用程序的剪贴板">
-              <i class="fa fa-clipboard fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;剪贴板</span>
-            </button>
-          </li>
-          <!-- Virtual keyboard -->
-          <li id="navbarVirtualKeyboardButton" class="hide">
-            <button id="virtualKeyboardToggleButton" class="btn btn-default navbar-btn" title="切换虚拟键盘">
-              <i class="fa fa-keyboard-o fa-fw" aria-hidden="true"></i>
-              <span class="hidden-sm">&nbsp;键盘</span>
-            </button>
-          </li>
-          <!-- Example without a button:
-          <li>
-            <a href="#" data-toggle="modal" data-target="#clipboardModal">
-              <span class="glyphicon glyphicon-paperclip"></span>
-              <span class="hidden-sm"> Clipboard</span>
-            </a>
-          </li>
-          -->
-        </ul>
-      </div>
-    </div>
-  </nav>
-
-  <!-- Navigation bar visibility toggle button -->
-  <div id="navbarVisibilityToggleButton" class="hide" style="top:50px;position:fixed;margin-left:-26px;left:50%;cursor:pointer;">
-   <i id="navbarVisibilityToggleButtonIcon" class="fa fa-border fa-chevron-up" aria-hidden="true" style="padding-left:20px;padding-right:20px;background-color:white;cursor:pointer;"></i>
-  </div>
-
-  <!--
-    Canvas for the Remote Frame Buffer (RFB).
-    The top margin is needed to make the canvas appear below the navbar.  This
-    margin is removed when navbar is hideable.
-  -->
-  <canvas id="rfbScreen" class="center-block" style="margin-top:51px;">
-    Canvas not supported.
-  </canvas>
-
-  <!-- Password Modal -->
-  <div class="modal fade" id="passwordModal" role="dialog">
-    <div class="modal-dialog">
-      <div class="modal-content">
-        <div class="modal-header">
-          <button type="button" class="close" data-dismiss="modal">&times;</button>
-          <h4 class="modal-title">请输入密码</h4>
-        </div>
-        <div class="modal-body">
-            <input type="password" class="form-control" id="vnc_password" name="password" placeholder="密码"/>
-        </div>
-        <div class="modal-footer">
-          <button class="btn btn-default" id="SubmitPasswordButton">提交</button>
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <!-- Clipboard Modal -->
-  <div class="modal fade" id="clipboardModal" role="dialog">
-    <div class="modal-dialog">
-      <div class="modal-content">
-        <div class="modal-header">
-          <button type="button" class="close" data-dismiss="modal">&times;</button>
-          <h4 class="modal-title">剪贴板</h4>
-        </div>
-        <div class="modal-body">
-          <p>这是远程应用程序剪贴板的内容。</p>
-          <textarea rows="5" class="form-control" id="clipboard_content"></textarea>
-        </div>
-        <div class="modal-footer">
-          <button class="btn btn-primary" id="SubmitClipboardButton">提交</button>
-          <button class="btn btn-default" id="ClearClipboardButton">清除</button>
-        </div>
-      </div>
-    </div>
-  </div>
-
-</body>
-</html>