Có cách nào để lưu cài đặt màn hình của tôi không? Tôi có một màn hình bên ngoài tại nơi làm việc, nhưng mỗi sáng tôi phải cắm nó vào, sắp xếp lại các cửa sổ từ cạnh nhau để nằm trên nhau. Tôi có thể lưu cái này không?
Có cách nào để lưu cài đặt màn hình của tôi không? Tôi có một màn hình bên ngoài tại nơi làm việc, nhưng mỗi sáng tôi phải cắm nó vào, sắp xếp lại các cửa sổ từ cạnh nhau để nằm trên nhau. Tôi có thể lưu cái này không?
Câu trả lời:
Câu chuyện dài (nghĩa là: làm những gì Nicolas Bernaerts gợi ý, nhưng tôi tiết lộ cho bạn các chi tiết): cấu hình màn hình thực sự được lưu vào ~/.config/monitors.xml
, nhưng nó không được áp dụng khi khởi động / đăng nhập.
Các bước để khắc phục điều này là:
Đăng nhập với cấu hình màn hình sai.
Xóa cấu hình màn hình hiện tại:
cd .config
mv monitors.xml{,.bak}
Sử dụng ứng dụng Hiển thị để sắp xếp các màn hình theo ý muốn (Tôi có một màn hình một bên được xoay ngược chiều kim đồng hồ).
Khi bạn nhấn Áp dụng , một cái mới monitors.xml
được tạo.
Bây giờ, tải xuống và thực thi tập lệnh và trình khởi chạy buộc cấu hình màn hình dựa trên tệp cấu hình vừa tạo:
$ sudo wget -O /usr/local/sbin/update-monitor-position https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position
$ sudo chmod +x /usr/local/sbin/update-monitor-position
$ sudo wget -O /usr/share/applications/update-monitor-position.desktop https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/update-monitor-position.desktop
$ sudo chmod +x /usr/share/applications/update-monitor-position.desktop
Tại thời điểm này, cấu hình của màn hình có thể được sửa bằng cách khởi chạy ứng dụng vị trí màn hình cập nhật .
Nếu bạn muốn điều này là tự động, chỉ cần thêm một ứng dụng khởi động, với các mục sau:
Update Monitors Position
update-monitor-position 5
Force monitors position 5 seconds after login
Cấu hình cho tất cả các màn hình của bạn - cắm nóng hay không - nên được lưu trữ $HOME/.config/monitors.xml
bởi xrandr
plugin cho gnome-settings-daemon
, đây là thứ thực sự áp dụng cấu hình bạn thực hiện trong capplet Màn hình.
Vì dường như điều này không hoạt động đúng với mọi người, rõ ràng có một lỗi ở đâu đó. Urgh.
Ba bước đầu tiên để kết nối màn hình ngoài của bạn theo cách bạn muốn và thứ 4 là lưu cài đặt.
Kết nối màn hình ngoài của bạn và kiểm tra độ phân giải được hỗ trợ của nó:
xrandr -q
Đưa ra lệnh sau (Điều này sẽ vô hiệu hóa màn hình máy tính xách tay của bạn):
xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
Nếu bạn muốn kích hoạt cả máy tính xách tay và bên ngoài:
xrandr --output LVDS1 --mode yyyyXzzzz --pos 0x0 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
(yyyyXzzzz - độ phân giải máy tính xách tay của bạn.)
Các cấu hình trên sẽ nhân bản màn hình của bạn. Chơi với tùy chọn " --right-of
/ --left-of
" nếu bạn muốn.
Nếu bạn cần cài đặt này trong khi đăng nhập, hãy thêm các kiểm tra vào /etc/X11/Xsession.d/45custom_xrandr-settings
(Bạn có thể cần phải tạo một).
xrandr |grep VGA1 | grep " connected " | if [ $? -eq 0 ]; then xrandr --output LVDS1 --off --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal #Change the way u need ; fi
Ở văn phòng, tôi có 3 màn hình trên laptop và 2 ở nhà. Hai trong số các màn hình văn phòng được đặt dọc, trong khi các màn hình khác ở hướng bình thường.
A. Monitor.xml nằm trong ~ / .config.
B. Nhận tập lệnh shell, "cập nhật-màn hình-vị trí".
Thay đổi định nghĩa "MONITOR_XML", "Monitor.xml" thành "màn hình-office.xml".
Lưu nó dưới dạng "update-Monitor-location-office", trong đường dẫn thực thi (/ usr / local / sbin /).
C. Nhận lối tắt trên màn hình, "update-Monitor-location.desktop"
cập nhật-màn hình-vị trí-office.desktop:
[Desktop Entry]
Type=Application
Exec=update-monitor-position-office
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Office Monitors Position
Name=Office Monitors Position
Comment[en_US]=Force monitors position from monitor-office.xml
Comment=Force monitors position from monitor-office.xml
Icon=display
Shell script, cập nhật-màn hình-vị trí-văn phòng
#!/bin/bash
# -------------------------------------------------
# Get monitors configuration from monitor.xml and apply it for current user session.
# In case of multiple definitions in monitor.xml only first one is used.
#
# See http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost
# for instructions
#
# Parameters :
# $1 : waiting time in sec. before forcing configuration (optional)
#
# Revision history :
# 19/04/2014, V1.0 - Creation by N. Bernaerts
# 10/07/2014, V1.1 - Wait 5 seconds for X to fully initialize
# 01/09/2014, V1.2 - Correct NULL file bug (thanks to Ivan Harmady) and handle rotation
# 07/10/2014, V1.3 - Add monitors size and rate handling (idea from jescalante)
# 08/10/2014, V1.4 - Handle primary display parameter
# 08/12/2014, V1.5 - Waiting time in seconds becomes a parameter
# -------------------------------------------------
# monitor.xml path
MONITOR_XML="$HOME/.config/monitors-office.xml"
# get number of declared monitors
NUM=$(xmllint --xpath 'count(//monitors/configuration['1']/output)' $MONITOR_XML)
# loop thru declared monitors to create the command line parameters
for (( i=1; i<=$NUM; i++)); do
# get attributes of current monitor (name and x & y positions)
NAME=$(xmllint --xpath 'string(//monitors/configuration['1']/output['$i']/@name)' $MONITOR_XML 2>/dev/null)
POS_X=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/x/text()' $MONITOR_XML 2>/dev/null)
POS_Y=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/y/text()' $MONITOR_XML 2>/dev/null)
ROTATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rotation/text()' $MONITOR_XML 2>/dev/null)
WIDTH=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/width/text()' $MONITOR_XML 2>/dev/null)
HEIGHT=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/height/text()' $MONITOR_XML 2>/dev/null)
RATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rate/text()' $MONITOR_XML 2>/dev/null)
PRIMARY=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/primary/text()' $MONITOR_XML 2>/dev/null)
# if position is defined for current monitor, add its position and orientation to command line parameters
[ -n "$POS_X" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--output" "$NAME" "--pos" "${POS_X}x${POS_Y}" "--fbmm" "${WIDTH}x${HEIGHT}" "--rate" "$RATE" "--rotate" "$ROTATE")
# if monitor is defined as primary, adds it to command line parameters
[ "$PRIMARY" = "yes" ] && PARAM_ARR=("${PARAM_ARR[@]}" "--primary")
done
# if needed, wait for some seconds (for X to finish initialisation)
[ -n "$1" ] && sleep $1
# position all monitors
xrandr "${PARAM_ARR[@]}"
Câu trả lời của jay gần như có tác dụng với tôi, nhưng tôi cần làm thêm một vài bước. Tôi muốn bình luận về câu trả lời của anh ấy nhưng tôi không có tiếng tăm.
Trong tệp cập nhật-màn hình-vị trí-văn phòng:
Tôi thích chạy tập lệnh này từ một thiết bị đầu cuối vì tôi mở một tập lệnh đầu tiên sau khi đăng nhập.
Đăng nhập lần đầu với cấu hình xấu - màn hình không được đặt chính xác:
cd ~/.config
mv ~/.config/monitors.xml{,.bak}
Bây giờ hãy đặt màn hình của bạn với các cài đặt hệ thống để tạo một ~/.config/monitors.xml
tệp mới với các cài đặt thích hợp.
Sao chép tập lệnh cố định của Nicolas Bernaerts từ repo của tôi: https://raw.githubusercontent.com/alextomko/monitor/master/monitor và đặt nó vào một đường dẫn để chạy từ thiết bị đầu cuối.
$ ls -l ~/bin
# if you don't have this directory then create it - do not be logged in as root here.
$ mkdir /home/$USER/bin
$ echo $PATH
# should show /home/username/bin if the dir existed or if you had to create.
$ wget -P ~/bin https://raw.githubusercontent.com/alextomko/monitors/master/monitors
$ chmod +x ~/bin/monitors
# Log out, lock, reboot or whatever it takes to make monitor settings lost for you and run the script.
$ monitors
Không, không có cách nào để lưu cấu hình trên màn hình cắm nóng. Nếu bạn cắm trước khi khởi động, Gnome nên nhớ cấu hình trên mỗi lần khởi động trên cơ sở từng thiết bị (nghĩa là kết nối với màn hình của bạn tại nơi làm việc so với ở nhà).
~/.config/monitors.xml
, nhưng nó không được áp dụng khi khởi động