筆電的解析度只有 1366x768, 跑 kvm 時, 虛擬機的解析度就只能調成 800x600, 好呆的感覺, guest 裡面的 app 如果不夠貼心 (對解析度的需求太貪心), 可能會連按鈕都按不到。 以這個例子來說, 可以按著 alt 鍵再用滑鼠移動視窗, 問題就解決了。
不過更一般地來說, 要怎樣才能用低解析度 (小螢幕) 的價格與重量得到高解析度 (大螢幕) 的享受呢? X Window 有一個神奇的功能, 讓你的實體螢幕彷彿只看到想像中的虛擬螢幕的一小部分, 每當滑鼠移到邊界時, 這一小塊看得見的視野的範圍也就跟著改變。 看 這支影片 比較清楚: 他的解析度也是只有 1366x768, 但是到了 1:01 時, 「panned screens」 按下 ok, game 的程式碼就以為螢幕變大了。 注意看他每次滑鼠移到邊邊時, 遊戲背景就會跟著移動; 但是對 game (或是其他任何 apps) 的程式碼而言, 它一直以為螢幕就是很大、 背景其實一直是保持固定不動的。
很久以前在 enlightenment 環境下就玩過這個功能;
今天才知道這是底層 X window 的基本功能, 任何桌面環境都可採用。
先在命令列下: xrandr | grep ' connected'
查看螢幕的名稱及解析度。 例如我看到的是:
LVDS-1 connected 1366x768+0+0
(normal left inverted right x axis y axis)
277mm x 156mm
得知名稱為 LVDS-1。
然後下 xrandr --output LVDS-1 --fb 1600x1200
--panning 1600x1200
口中唸著咒語 「tiida!」
虛擬解析度突然變成 1600x1200! 超爽 der!
從
archlinux 跟
linux questions 學來的。
[11/1 根據
這一篇, 其實不必加 --fb 也可以,
它會自己計算正確的值。]
但是等一下... 工具列為什麼卡在螢幕中間啊?
這顯示視窗管理員並沒有認出 1600x1200 的解析度。
(忘記試了: 當時如果 xrand 命令列上再加上 --mode 1366x768 不知有沒有作用?)
猜想應該要在剛登入的時候、 視窗管理員還沒啟動之前就馬上設定才對。
我的 linux 是 lubuntu 16.04, 登入管理員是 lightdm,
於是用 「xrandr lightdm」 搜尋, 找到 askubuntu 跟 gist,
得知只要在 /etc/lightdm/lightdm.conf 裡面加一句
session-setup-script=/etc/X11/ckhung.sh
之類的設定即可。 /etc/X11/ckhung.sh 裡面就放那句
xrandr 設定。 要記得 chmod a+x /etc/X11/ckhung.sh
。
要 systemctl restart lightdm
或是重開機才會生效。
看來我那些已經冰凍很久的 eeepc 還是有機會拿出來用的...
請問 Windows 有沒有類似的應用程式呢?我也有部冰凍很久的 eeepc 呢。
回覆刪除這個不知有沒有用? https://superuser.com/questions/50501/change-screen-resolution-to-exceed-the-maximum-on-windows-7 不過這麼舊的電腦,從安全性跟硬體效能來看,不如裝 linux 比較實在吧。
刪除謝謝您的意見
刪除標題取的真好。
回覆刪除另外我有幾個問題
不知道 "--fb" 是幹麻的,用
"xrandr --output DVI-I-0 --mode 800x600 --panning 3000x2000"
一樣可以運作。
不知道為什麼延伸的黑色的區域一直閃爍,而且切換到 virtual screen mode 以後,視窗用滑鼠點兩下讓它 "最大化",視窗的大小還是依照舊有的大小 (800x600),不會吃新的大小 (3000x2000),變成我要手動拉大,拉不好還會看到黑色區域一直閃爍。
不過讚,以後用 Inkscape 會很方便,Inkscape 的界面在 1440x900 解析度所剩下的畫布空間其實很小。
嗯, 果然沒錯, 不必加 --fb 也可以。
回覆刪除我也沒試過其他排列組合,
閃爍的問題我沒遇過。
用 flickering 也搜尋不到。
聽起來會不會是驅動程式
把不該用的記憶體拿來用啊?
(因為它沒預期螢幕會用這麼多記憶體?)
不知道,目前無解,不過沒有大礙,只要把視窗手動拉大到虛擬螢幕全部的大小就看不到了。
刪除偶爾要畫圖用 xrandr 這樣做很方便。