Gnome 似乎非常適合觸控設備,有沒有辦法在翻轉筆記型電腦/平板電腦時自動旋轉螢幕?
答案1
編輯:我知道這並不能直接回答你的問題,因為我們有不同的計算機並且你對 Gnome 感興趣,但我想將其發佈到某個地方以幫助其他人。
以下內容適用於 Spectre x360 (Kaby Lake) 上的 Ubuntu 16.10 (Unity)。我懷疑類似的處理方法也適用於其他筆記型電腦。
正如 @Yalokly 的回答所示,安裝iio-sensor-proxy
:
sudo apt-get install iio-sensor-proxy
這可能是一個需要工作的蠕蟲。如果在運行時monitor-sensor
旋轉設備時發生了一些事情,那麼您就知道它正在工作。這裡是您可能會找到一些故障排除資訊的儲存庫。我在進行過程中遇到了一些麻煩。將我的核心從 4.8 更新到 4.10 對我來說很有效。上網搜尋一下教學。和許多其他人一樣,我遇到了一個錯誤,即感測器監控僅在電腦暫停/恢復至少一次後才起作用。
Unity 本身不會執行自動旋轉和平板電腦模式功能。我組合了來自的腳本這裡和這裡以便:
- 螢幕自動旋轉
- 鍵盤和觸控板僅在筆記型電腦處於正常方向時才起作用;其他三個方向禁用
- Unity 啟動器放置在縱向的底部,橫向的左側
- 該
onboard
程式在三個“平板電腦”方向啟動,並在“筆記型電腦”方向終止(額外:我發現在板載首選項中以文字模式啟用自動彈出很有幫助)
這是腳本:
#!/bin/sh
# IH: this script is taken from a combo of:
# https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu
# https://askubuntu.com/questions/757900/hp-spectre-x360-disable-touchpad-in-tablet-mode-ubuntu-15-10
# Auto rotate screen based on device orientation
# Receives input from monitor-sensor (part of iio-sensor-proxy package)
# Screen orientation and launcher location is set based upon accelerometer position
# Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
# This script should be added to startup applications for the user
# Clear sensor.log so it doesn't get too long over time
> sensor.log
# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> sensor.log 2>&1 &
# Parse output or monitor sensor to get the new orientation whenever the log file is updated
# Possibles are: normal, bottom-up, right-up, left-up
# Light data will be ignored
while inotifywait -e modify sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')
# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
xrandr --output eDP-1 --rotate normal
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 1 #Enable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 1 #Enable Pad
killall onboard
;;
bottom-up)
xrandr --output eDP-1 --rotate inverted
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
right-up)
xrandr --output eDP-1 --rotate right
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
left-up)
xrandr --output eDP-1 --rotate left
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
esac
done
注意:我的螢幕名為eDP-1
,您的螢幕可能有不同的名稱。執行xrandr
找出名稱,並更改上面腳本中的四個實例。
將其儲存為auto-rotate.sh
,使其可執行 ( chmod a+x auto-rotate.sh
),然後將其新增至啟動應用程式。
答案2
這個軟體據報道可以在許多二合一設備上使用。但你必須運行最新的核心和 gnome。
答案3
我已經使用了 @Ian Hincks 程式碼,但我有一些建議讓它有用。我有一台戴爾 Inspiron 靈越 13 7000 系列,這台機器有一個光感應器來平衡背光亮度。我必須修改“方向”線的構建,因為光傳感器變化很快並且會污染捕獲的方向。然後我透過一條方向線接收到三種光線變化。如果我只捕獲日誌的一行,我就會失去方向線。這就是為什麼我將日誌捕獲增加到 4 行,並更改 grep 正規表示式以捕獲最後一個方向。然後,新的 ORIENTATION 行將會是:
ORIENTATION=$(tail -n 4 sensor.log | grep 'orientation' | grep -oEm 1 '[^ ]+$')
感謝@Ian Hincks 提供的程式碼!
答案4
我在用著自動旋轉
它可以手動或自動旋轉螢幕和數位化儀。 systemd 守護程式有一個選項可以在背景執行它。