跨平台的觸控螢幕軟體「Weylus」使用教學,開源免費的Duet Display替代品。
若要把平板插到電腦當第二螢幕使用,技術上來說,你沒辦法直接插HDMI線到平板上,因為平板很少有HDMI input的功能。所以要當第二螢幕,多半要靠軟體實作,也就是在平板跑接收端,接著電腦軟體配合投放螢幕才可以。
比如,我曾用過「Duet Display」和「Spacedesk」,可以讓iPad當電腦第二螢幕。但畢竟他們是閉源軟體,且沒有Linux版,不符合我的需求。
論開源、免費、跨平台的第二螢幕方案,有Weylus可以採用。
Weylus為一款跨平台(Linux、Windows、macOS)軟體,可以將平板作手寫輸入端,或作螢幕共享,或作螢幕投放(投屏),或作遠端桌面,或將平板當作第二螢幕。
使用者在電腦端跑Weylus伺服器,再用平板的瀏覽器連上Weylus即可操作電腦。好處是平板不需要任何APP就能連線到Welyus,且不論iPad/Android平板/Linux平板皆可作為輸入端。
跟類似軟體Deskreen比起來,Weylus多了手寫筆輸入的功能,能將平板變成控制電腦的觸控板。例如下面Weylus作者示範用iPad + Apple Pencil手寫xournal++筆記的樣子。
1. 安裝Weylus#
請至 Weylus下載對應平台的執行檔。
- Linux和macOS版是解壓縮,點二下
weylus
執行。Window則是解壓縮後點選weylus.exe
啟動Weylus。
Weylus目前僅支援x86架構,如果你需要ARM架構的請安裝Flatpak版的 WeylusCommunityEdition
- Linux在安裝Weylus後要開放防火牆
1701/tcp
和9001/tcp
通訊埠
sudo ufw allow 1701/tcp
sudo ufw allow 9001/tcp
sudo ufw reload
- Linux需要新增以下uinput規則。
sudo groupadd -r uinput
sudo usermod -aG uinput $USER
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"' | sudo tee /etc/udev/rules.d/60-weylus.rules
sudo udevadm control --reload
sudo udevadm trigger
- Weylus支援X11與Wayland工作階段,若為後者請確保電腦已安裝
pipewire
、xdg-desktop-portal-gtk
、xdg-desktop-portal-qt
套件。
2. Weylus當電腦觸控螢幕#
讓電腦與平板處在同一個Wifi網路下
電腦開啟Weylus程式,填入自訂密碼(Access Code),點選Start(Wayland需勾選PipeWire選項)
按照Weylus顯示的IP,在平板上的瀏覽器輸入IP連線。
於是你就會看到電腦畫面了,點選Toggle FullScreen進入全螢幕。
預設模式下,Weylus僅讓平板成為輸入端,可以使用平板端的鍵盤或者手寫筆輸入文字到電腦,觸控操作也可以。
下圖為我使用 Joplin的Freehand Drawing延伸模組的結果,確認可以用平板在電腦上的Joplin寫字。
不過,Wifi訊號不好的話寫字延遲會很高,使用 Moonlight當觸控螢幕的方案可能會比Welyus快一些。
- 觸控板模式用起來也很像遠端桌面不是嗎?如果需要在平板電腦之間共用剪貼簿、傳送檔案,建議搭配 KDE Connect使用。
3. Weylus當電腦第二螢幕#
大部分系統都有延伸桌面的功能,就是在接雙螢幕的時候,把第二個螢幕當成主螢幕的延伸桌面使用,而非鏡射螢幕。
多螢幕對Weylus來說也不是問題,連線的時候可以選取要控制哪個視窗或螢幕。利用這個原理,我們就可以把電腦的其中一個螢幕給Weylus投影,從而達成雙螢幕的目的。(註解:Weylus偵測多個顯示器的功能似乎只能在Linux使用,Windows只能抓到主顯示器。)
這裡提供二個方式供參考。我個人偏好「硬體模擬雙螢幕」的作法,因其適用於Linux/Windows/macOS系統,不用特地設定什麼。
軟體模擬雙螢幕#
Windows的話,安裝 Virtual Display Driver即可做一個假螢幕出來,再讓Weylus投影該螢幕即可。
Linux可以用軟體方式模擬第二個螢幕出來,再用Weylus投影該螢幕。
X11工作階段,用 xrandr做個virtual output。
至於Wayland工作階段,GNOME 42以上有 RDP Screen Share Mode
KDE 5.27以上可用 krfb-virtualmonitor建立虛擬螢幕。
這邊提一下更變態的玩法:Weylus並無限制客戶端數量,所以你可以一次做好幾個虛擬螢幕,再用多個裝置連線,即每個客戶端連線到一個虛擬螢幕。
硬體模擬雙螢幕#
之所以講模擬,是因為我們沒有要真的裝二個螢幕,而是以HDMI欺騙器(HDMI dummy plug)替代之。
買個HDMI欺騙器,插在顯示卡的第二個HDMI孔上,假裝我有雙螢幕。
接著在Weylus連線的時候,選取連線到HDMI欺騙器的「螢幕」就可以了。
Linux端的桌面環境可以調整HDMI欺騙器螢幕的「相對位置」
達成如下效果,以上下擺放的方式延伸桌面。
4. 降低Weylus延遲的方法#
Weylus無線使用上還是有點延遲,在網頁端降低解析度或許會有幫助。
也可以在平板或電腦端開熱點,使用專用Wifi連線讓網路更順暢。
如果Wifi訊號差,致使無線延遲高,就乾脆用有線網路吧!透過USB線分享網路,讓電腦連線到平板熱點是個降低延遲的方法。
或是嘗試讓平板用電腦網路上網(reverse USB tethering),Android平板請參考 Gnirehtet教學,iPad參考 macOS內建網路分享功能,Linux平板參考 將電腦作為NAT。
儘管Weylus網頁界面最高顯示FPS是30,有線的FPS還是比無線高的,畫面主觀上有60FPS。
5. Weylus免Wifi連線的作法#
如果你不方便使用Wifi,除了上面提的有線連接外,還可以設定 內網穿透軟體,再用虛擬區域IP連線到Weylus伺服器。
Weylus的作者說為了流暢度,預設傳輸流量是沒有任何加密的,他僅提供 一個範例指令稿實現HTTPS加密的方法。
不過內網穿透軟體「ZeroTier」和「TailScale」的連線本身就有加密,所以應該不太需要再套一層HTTPS加密。
Weylus的替代方案#
- Deskreen:功能與Weylus類似,有提詞器功能。
- Moonlight + Sunshine:Linux跑遊戲串流伺服器,再利用本文提到的雙螢幕原理,連線到第二螢幕,支援觸控筆筆壓。Weylus並沒有針對多媒體串流最佳化,Moonlight方案更適合播放影片與玩遊戲。
- x11VNC:同上,只不過是圖形效能更差的VNC伺服器。