Dell 13 7000 15.04 (Gnome) 上的自動旋轉螢幕

Dell 13 7000 15.04 (Gnome) 上的自動旋轉螢幕

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 本身不會執行自動旋轉和平板電腦模式功能。我組合了來自的腳本這裡這裡以便:

  1. 螢幕自動旋轉
  2. 鍵盤和觸控板僅在筆記型電腦處於正常方向時才起作用;其他三個方向禁用
  3. Unity 啟動器放置在縱向的底部,橫向的左側
  4. 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 守護程式有一個選項可以在背景執行它。

相關內容