Làm thế nào tôi có thể thực hiện tùy chỉnh xrandr vĩnh viễn?


65

Tôi đã sử dụng để chỉnh sửa tập lệnh khởi động cho GDM (/ etc / gdm / init / Default) để thay đổi vĩnh viễn độ phân giải màn hình của tôi.

Làm cách nào tôi có thể làm điều này với LigthDM trong Ubuntu Oneiric?


thêm vào .xprofile trong thư mục nhà của bạn. Xem Askubfox.com/questions/63863/ cho một hướng dẫn cơ bản để thiết lập độ phân giải và thêm vào .xprofile
duffydack

Câu trả lời:


21

Tôi nghĩ bạn có thể thêm các chế độ hiển thị vào /etc/X11/xorg.conf.

Nếu bạn không có xorg.conf, thì bạn có thể sử dụng như sau. Bạn cần phải thay thế các mục với tên Modeline, DriverModesvới các mục chính xác cho hệ thống của bạn. Tùy thuộc vào phần cứng của bạn, bạn có thể cần các mục bổ sung, ví dụ nếu hệ thống của bạn có nhiều hơn một chip đồ họa.

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

Nếu bạn không biết tên của trình điều khiển video mà hệ thống của bạn đang sử dụng thì bạn có thể nhận được tên như sau (nếu bạn có chip đồ họa intel, tên trình điều khiển chỉ là "intel"):

lshw -class display | grep "driver"

Các mô hình có thể được tạo ra với cvt:

cvt <h-resolution> <v-resolution> [refresh]

Tôi đã thử điều này và nó sẽ không khởi động vì một số lý do. Tôi đã sử dụng modeline được tạo từ cvtlệnh và trình điều khiển từ cái khác (và cũng đã thử vesa), nhưng nó chỉ treo mà không có thông báo lỗi. Giải pháp của Jon Roberts hoạt động hoàn hảo với tôi và không phụ thuộc vào những thứ như trình điều khiển card màn hình mà bạn đề cập ở đây có thể dễ dàng sai đối với người mới, vì vậy tôi bỏ phiếu trả lời.
Mike

1
Điều này dường như không giúp được gì cho những thứ như --rotate.
Jherico

2
Câu trả lời này đã lỗi thời. Xem câu trả lời của John Roberts
con-f-use

+1 Hoàn hảo-o! Sử dụng GDM w / Gnome 3.16 và điều này khiến GDm của tôi nhận ra màn hình 1080p. Cảm ơn bạn!
eduncan911

Trên máy tính của tôi, lshwđầu ra i915, tuy nhiên trình điều khiển chính xác là intel.
dùng202729

63

Sửa đổi /etc/lightdm/lightdm.confđể thêm các tùy chọn sau:

display-setup-script> gọi mycustomloginvideo.sh của bạn trước khi màn hình đăng nhập xuất hiện

session-setup-script> gọi mycustomdesktopvideo.sh của bạn trước khi phiên máy tính để bàn của người dùng bắt đầu

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

Bạn có thể có công cụ gui "arandr" tạo tập lệnh sh ở trên, chọn tham số từ cấu hình X của phiên hiện tại của bạn.

Đảm bảo rằng tập lệnh shell của bạn có thể thực thi được:

chmod a+x /usr/share/mycustom*video.sh

và bạn có thể kiểm tra xem nó có hoạt động không (tức là bạn không có lỗi chính tả hoặc lỗi cấu hình trong lệnh xrandr của bạn) chỉ bằng cách chạy nó trong một thiết bị đầu cuối:

/usr/share/mycustomdesktopvideo.sh

Nếu tập lệnh đăng nhập không hoạt động vì bất kỳ lý do nào, máy của bạn có thể không hoàn thành quá trình khởi động vào màn hình đăng nhập. Nếu tập lệnh máy tính để bàn bị lỗi, bạn có thể không nhận được máy tính để bàn sau khi đăng nhập. Nếu bạn đang đặt màn hình ngoài, các tập lệnh này sẽ thất bại khi bạn ngắt kết nối và phiên X sẽ không bắt đầu.


Đối với Mint 13 XFCE bằng mdm, chỉnh sửa / etc / mdm / init / Mặc định. Gọi tập lệnh của bạn trước khi "thoát 0"
StackUnder

Evnn hoạt động trên Fedora ... chỉ cần display-setup-scripttập lệnh vì Xfce đã cài đặt nó bằng cài đặt hiển thị, vì vậy, session-setup-scripttôi đã bỏ qua màn hình đăng nhập.
Wilf

10

Một số người đã đăng một cách giải quyết khác, mặc dù tôi phải nói rằng nó không hiệu quả với tôi. Nó có thể làm việc cho bạn. Trong trường hợp của tôi, nó phá vỡ sự thống nhất và tôi chỉ có thể di chuyển con trỏ chuột xung quanh. Bảng điều khiển trên cùng của chỉ báo ứng dụng trông trống rỗng, nhưng sau khi rút LCD ra, tôi có thể xóa các dòng được thêm vào và mọi thứ trở lại bình thường.

chỉnh sửa tập tin /usr/sbin/lightdm-session

Đây là cách phần đầu tiên của tập tin đó bây giờ:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00

# Load resources

Hãy lưu ý rằng các cài đặt Xrandr nên được thay đổi để phù hợp với cài đặt của bạn.


Giải pháp này đã làm việc rất tốt cho Lubfox 17.x trên một máy cũ. Nó chỉ ảnh hưởng đến phiên, vì vậy màn hình đăng nhập lời chào không hiển thị với độ phân giải mong muốn.
laconbass

6

Tôi đã cố gắng giải quyết một vấn đề tương tự trong một thời gian và tìm thấy một giải pháp hiệu quả cho tôi vì vậy hy vọng nó sẽ giúp ...

Tôi có một chiếc AOA110 cũ khao khát mà tôi đã làm hỏng màn hình quá nhiều lần và sau khi mua một chiếc máy tính xách tay mới đã quyết định rằng tôi sẽ cố gắng biến nó thành một HTPC nhưng màn hình bên ngoài mà tôi không nhận ra được vì vậy tôi phải 'tinh chỉnh' nó nhiều lần để làm cho nó hoạt động ở độ phân giải chính xác.

Đây là những gì tôi đã làm:

Sau khi sử dụng http://ubuntuforums.org/showthread.php?t=1112186 này đến bước 5, tôi đã có thể tìm thấy một độ phân giải hoạt động và chấp nhận được trong xrandr nhưng điều này không hoạt động trên màn hình đăng nhập LightDM.

Đừng làm theo các bước để làm cho nó bền bỉ ở trên để làm thế nào để nó hoạt động nhưng tôi nghĩ đây là cách thích hợp để làm điều đó trong 11.10. Tôi tìm thấy bài đăng này trên ArchWiki https://wiki.archlinux.org/index.php/Xorg mà tôi đã điều chỉnh theo nhu cầu của mình.

Đầu tiên tạo một tập tin ở đây: /etc/X11/xorg.conf.d/10-monitor.conf

Sau đó, thêm các chi tiết X thích hợp cho màn hình của bạn ở đây là giao diện của tôi:

Section "ServerLayout"
Identifier     "DualSreen"
Screen       0 "Screen0"
Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
Identifier     "LVDS1"
Option         "ignore" "true"
EndSection

Section "Monitor"
Identifier     "VGA1"
Option         "Enable" "true"
Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync
EndSection

Section "Device"
Identifier     "Device0"
Driver         "intel"
Screen         0
EndSection

Section "Device"
Identifier     "Device1"
Driver         "intel"
Screen         1
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "VGA1"
DefaultDepth    24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
    Modes          "1440x900_60.00"
EndSubSection
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "LVDS1"
DefaultDepth   24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
EndSubSection
EndSection

Các bit quan trọng cần thêm nằm dưới phần thích hợp Section "Monitor"bao gồm phần thích hợp Modelinemà bạn tìm thấy trong khi sử dụng gtf 1440 900 60.00và sau đó theo phần tương ứng Section "Screen"bao gồm cả phần chính xác Modes.

Bạn sẽ nhận thấy rằng những gì tôi đã cố gắng không chỉ là đặt kết nối VGA1 thành độ phân giải phù hợp mà còn bảo nó không sử dụng đầu ra LVDS1 của tôi. Rõ ràng là bạn sẽ cần phải điều chỉnh phù hợp của bạn để phù hợp với số lượng đầu ra phù hợp và các phần Thiết bị, Màn hình và Hiển thị phù hợp cho thiết lập của bạn.

Xin lỗi vì bài đăng hoành tráng, tôi đã điều chỉnh các tệp xorg.conf một thời gian với màn hình Hannspree tôi đã sử dụng và các thiết lập xorg.conf cũ mà tôi đã sử dụng trước 11.10 không hoạt động chính xác nữa. giải pháp duy nhất tôi đã tìm thấy hoạt động.

Chúc may mắn!


Việc sử dụng xrandr -qsẽ cung cấp cho bạn thông tin chính xác về việc màn hình nào đang được sử dụng và các chế độ có thể.
tín ngưỡng

Một tệp cấu hình cơ bản có thể được tạo bằng cách chạy Xorg :1 -configure, nó tạo ra một máy chủ X mới và tạo một tệp cấu hình từ nó - điều này có thể được sao chép từ /root/xorg.conf.newsang /etc/X11/xorg.conf. Tôi tìm thấy một cách tốt hơn là câu trả lời ở trên
Wilf

5

Tôi đã có một vấn đề tương tự với máy tính xách tay của tôi như trên và tôi muốn thêm một cái gì đó vào cuộc trò chuyện. Nếu bạn không quan tâm đến độ phân giải đăng nhập (tôi không), nhưng muốn không gian làm việc thực tế là độ phân giải phù hợp, bạn có thể thêm thông tin màn hình của mình vào LightDM nhưng không bật độ phân giải đầy đủ cho đến khi bạn đăng nhập.

Tôi vừa thêm đoạn script sau cho màn hình của mình vào một tệp: lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

sau đó tôi gọi nó vào /etc/lightdm/lightdm.conf

display-setup-script=/usr/bin/lightdmxrandr

Khi tôi đăng nhập, tôi có thể thiết lập màn hình của mình trong Hiển thị và nó hoạt động, ngay cả sau khi tôi đăng nhập lại (được sử dụng để gây cho tôi một lỗi lớn xấu xí).


Điều này hoạt động như mong muốn nhưng phải khởi động lại không đăng nhập lại ...
CrandellWS

4

Như một sự nâng cao cho câu trả lời của Jon Roberts, hãy để tôi xác định rằng arandr không bao gồm trong việc tạo tập lệnh sh của nó tất cả các tham số hoạt động trong phiên hiện tại. Màn hình chính (trong trường hợp bạn đang sử dụng cấu hình màn hình kép), chẳng hạn như cài đặt tốc độ làm mới và gamma cho mỗi màn hình. Kịch bản phiên của tôi trông như thế:

#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55 

Tôi đã thêm thủ công các tùy chọn --rate và --primary trong dòng đầu tiên và sau đó thêm thủ công một dòng thứ hai với hiệu chỉnh gamma vì rõ ràng cài đặt gamma xrandr bị mất mỗi khi bạn chuyển màn hình sang chính .

Tôi không biết hành vi cụ thể này với cài đặt gamma khi thực hiện mục đích chính của màn hình hay là lỗi.

Ngoài ra, tập lệnh shell phiên không được gọi bởi lightdm mà là một ứng dụng khởi động, vì dường như lightdm gọi tập lệnh trước khi mọi thứ sẵn sàng cho xrandr và những điều kỳ lạ xảy ra.


4

Tôi gặp vấn đề muốn hiển thị mở rộng trên hộp LXDE mới của mình, (không phải bản sao kép), đã tìm thấy lệnh chính xác, nhưng không thể làm cho nó vĩnh viễn.

xrandr --output VGA-0 --right-of DVI-0

Tất cả các phương pháp trên dường như quá khó / không đúng cách để làm điều đó.

Cuối cùng tôi đã tìm thấy cái này: http://www.sudo-juice.com/change-lxde-screen-resolution-ubfox-lub Ubuntu /

Điều đó đã làm việc một điều trị, nhưng tôi đã sử dụng gedit thay thế:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

Sau đó, thêm dòng ở cuối bằng ký hiệu @ ở đầu:

@xrandr --output VGA-0 --right-of DVI-0

Hy vọng rằng sẽ giúp và cảm ơn bạn để sudo-Juice.

PS Lưu ý nhân đôi -trong lệnh xrandr --(không hiển thị quá rõ trên màn hình của tôi).


2

Tạo một tài liệu mới và đặt tên cho nó, ví dụ: /home/yourusername/yourscriptname.sh Nhập vào

#!/bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

và lưu nó trong thư mục nhà của bạn (điều này đặt độ phân giải thành 1600x900)

Mở Ứng dụng khởi động (hoặc chạy gnome-session-properties) và nhấp vào "THÊM". Đặt tên và gõ vào dòng lệnh:

bash /home/yourusername/yourscriptname.sh

Lưu nó và bây giờ tập lệnh sẽ được chạy ngay bây giờ mỗi khi bạn đăng nhập, vì vậy bạn sẽ cần phải đăng xuất trước để nó có hiệu lực. Chạy lệnh (ví dụ bash /home/yourusername/yourscriptname.sh) trong một thiết bị đầu cuối cũng sẽ là một ý tưởng tốt để kiểm tra xem tập lệnh có hoạt động hay không.


Điều này đã được chỉnh sửa (thay vì nếu bị xóa) bởi OP của câu trả lời này vì nó đã được đăng ở đây thay vì ở đây - tôi đã khôi phục định dạng ban đầu vì điều này có thể hữu ích vì nó sẽ khôi phục cấu hình xrandr khi đăng nhập - nội dung của tập lệnh bash nên có thể được thay thế bằng các lệnh xrandr được sử dụng để có được cấu hình đúng.
Wilf

Trong màn hình hai màn hình của tôi, EDID cho màn hình HDMI-0 của tôi đang được đọc, nhưng EDID cho DVI-0 của tôi không được đọc. Chỉ vào tập lệnh cấu hình được lưu trữ trong /usr/binkhông hoạt động, nhưng thêm tập lệnh đó vào các ứng dụng khởi động của tôi bằng cách sử dụng gnome-session-propertiesđã thành công!
noobninja

1

Dựa trên các phản hồi trên, tôi đã thực hiện một số thử nghiệm và tìm thấy một phương pháp hữu ích phù hợp với mình, sau đó tôi đã tạo một tập lệnh đơn giản để tự động hóa nó với các cài đặt tự động của tôi. Nhưng nó sẽ làm việc cho bất kỳ trường hợp khác.

Tạo một scriptinstallxrandrfixed.sh Thêm các dòng sau:

#Variables for lightdm script and xrandr script to setup fixed resolution for old displays: 
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf

 #Added old style configuration for lightdm: 
 sudo  ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
 #A fix to some old displays in high school at Fray Bentos, fix to 1024x768
 #Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
 sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
 # for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
 sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
 # for your desktop session
 sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
 sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
 sudo chmod +x $xrandrscript

nó sẽ tạo các tập lệnh và các tập tin để hiển thị và phiên lightdm. đừng quên cho phép nó thực thi

chmod + x scriptinstallxrandrfixed.sh

Và thực hiện

./scriptinstallxrandrfixed.sh (bạn phải được đặt trong cùng thư mục nơi bạn có tệp.)

nếu không trong cùng thư mục: /path/to/script/scriptinstallxrandrfixed.sh

Sửa đổi nó để đáp ứng nhu cầu của bạn. Trân trọng. Pablo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.