Layar laptop plus satu monitor eksternal adalah susunan kerja paling umum, dan Linux menyerahkan pengaturannya ke satu alat kecil di baris perintah: xrandr. Alat ini membaca keadaan seluruh output grafis, mengubah resolusi, dan menata posisi tiap monitor — tiga pekerjaan yang di balik layar juga dilakukan jendela pengaturan display. Pada Chapter ini kita belajar membaca output xrandr, menyusun layout dari command line, membuatnya permanen, lalu menangani layar HiDPI dan sesi Wayland yang aturannya berbeda.
Membaca Keadaan Layar dengan xrandr #
Perintah xrandr tanpa argumen memotret keadaan seluruh output grafis saat itu. Setiap kartu grafis mengekspos output bernama sesuai jenis konektornya: eDP-1 untuk panel internal laptop, HDMI-1 dan DP-1 untuk port eksternal. Berikut contoh tampilannya pada laptop bermonitor eksternal:
Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 60.00*+ 59.97
1680x1050 59.95
HDMI-1 connected 1024x768+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
DP-1 disconnected (normal left inverted right x axis y axis)Empat baris pertama sudah memuat hampir semua informasi yang kita butuhkan:
| Potongan | Arti |
|---|---|
connected / disconnected | status kabel pada output tersebut |
primary | monitor utama tempat panel dan dialog bawaan berada |
1920x1080+0+0 | mode aktif lalu posisi: lebar x tinggi + kiri + atas dalam piksel |
60.00*+ | mode 60 Hz sedang dipakai (*) dan merupakan pilihan utama (+) |
Angka current 2944 x 1080 pada baris pertama adalah hasil gabungan kedua monitor aktif — 1920 + 1024 piksel ke samping — pertanda bahwa kedua layar membentuk satu bidang koordinat tunggal. Rincian seluruh opsi query dirangkum di halaman xrandr ArchWiki
.
Menyusun Layout dari Command Line #
Mengubah layout berarti memberi argumen ke xrandr: output mana, mode apa, dan di posisi mana. Pola dasarnya selalu sama:
xrandr --output HDMI-1 --mode 1920x1080 --right-of eDP-1Opsi posisi dan status yang paling sering dipakai dirangkum berikut:
| Opsi | Efek |
|---|---|
--mode WxH | set resolusi output |
--auto | pilih mode dan posisi terbaik otomatis |
--right-of / --left-of | tempatkan di samping output lain |
--above / --below | tempatkan di atas / bawah output lain |
--same-as | cermin (mirror) isi output lain |
--primary | jadikan monitor utama |
--off | matikan output |
--dpi ANGKA | set kepadatan piksel untuk ukuran font |
Kombinasi --right-of membentuk desktop yang diperluas (extend): kursor berpindah menyusuri kedua layar. Kombinasi --same-as membentuk cermin (mirror): kedua monitor menampilkan isi sama pada resolusi terendah di antara keduanya. Susunan paling aman untuk memulai adalah xrandr --output HDMI-1 --auto --right-of eDP-1 karena --auto memilih mode terbaik tanpa kita menebak resolusinya.
Memparsing Output xrandr dengan Skrip #
Kekuatan xrandr sebagai alat teks terlihat saat layout perlu diotomatisasi — skrip login, deteksi dock, atau pemeriksaan sistem. Untuk berlatih tanpa layar sungguhan, kita simpan contoh output di atas ke berkas fixture lalu memparsingnya:
mkdir -p latihan-layar
cat > latihan-layar/xrandr.txt <<'EOF'
Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 60.00*+ 59.97
1680x1050 59.95
HDMI-1 connected 1024x768+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
DP-1 disconnected (normal left inverted right x axis y axis)
EOF
grep " connected" latihan-layar/xrandr.txt | cut -d" " -f1
echo "monitor aktif: $(grep -c " connected" latihan-layar/xrandr.txt)"
awk '$2 == "connected" {
if ($3 == "primary") geo = $4; else geo = $3
print $1, geo
}' latihan-layar/xrandr.txtOutput yang Dihasilkan:
eDP-1
HDMI-1
monitor aktif: 2
eDP-1 1920x1080+0+0
HDMI-1 1024x768+1920+0Mari kita bedah ketiga teknik parsing tersebut:
- Baris
grep " connected": pola dengan spasi di depan sengaja memilih kataconnecteddan otomatis menyingkirkandisconnected;cut -d" " -f1mengambil kolom pertama, yaitu nama output. - Baris
grep -c: menghitung baris yang cocok — angka ini adalah jumlah monitor aktif. - Program awk: kondisi
$2 == "connected"hanya memproses baris status; karena kataprimarymenggeser kolom, cabangifmenyeimbangkan letak geometry —geo = $4bila output utama,geo = $3bila bukan. Hasilnya tabel output dan posisinya yang siap dipakai skrip lain.
Layout yang Permanen: .xprofile #
Layout hasil xrandr hanya berlaku sampai sesi berakhir. Jendela pengaturan display menyimpannya untuk kita di DE, tetapi pada sesi X11 yang dirakit sendiri, tempat standarnya adalah ~/.xprofile — skrip kecil yang dibaca display manager setiap kali sesi X dimulai:
mkdir -p latihan-layar
cat > latihan-layar/.xprofile <<'EOF'
#!/bin/sh
# Aktifkan monitor HDMI di kanan layar laptop saat login
xrandr --output eDP-1 --auto --primary \
--output HDMI-1 --auto --right-of eDP-1
EOF
cat latihan-layar/.xprofileOutput yang Dihasilkan:
#!/bin/sh
# Aktifkan monitor HDMI di kanan layar laptop saat login
xrandr --output eDP-1 --auto --primary \
--output HDMI-1 --auto --right-of eDP-1Baris demi baris, berkas tersebut bekerja begini:
- Baris
#!/bin/sh: menandai berkas sebagai skrip shell — display manager menjalankannya persis seperti kita menjalankan skrip biasa. - Baris komentar: mengingatkan tujuan berkas; komentar shell dimulai dengan
#. - Baris
xrandr: satu perintah panjang yang dilipat dengan backslash di akhir baris — tanda backslash berarti perintah berlanjut ke baris berikutnya. - Opsi
--auto --primarypada eDP-1: layar laptop memakai mode terbaiknya dan tetap menjadi monitor utama. - Opsi
--right-of eDP-1pada HDMI-1: monitor eksternal ditempatkan di kanan layar laptop setiap login.
Sebelum memindahkannya ke home directory sungguhan, uji dulu perintah di dalamnya secara manual; layout yang salah lebih mudah diperbaiki sebelum menjadi otomatis.
HiDPI dan Wayland #
Layar berkepadatan tinggi (HiDPI) menambah satu variabel: scaling. GNOME dan Plasma mendukung faktor 200% yang menggambar semua elemen dua kali lebih besar, dan panel Displays di kedua DE adalah tempat mengaturnya. Pada X11, kepadatan font dikendalikan terpisah lewat berkas X resources:
mkdir -p latihan-hidpi
cat > latihan-hidpi/.Xresources <<'EOF'
Xft.dpi: 192
Xft.antialias: 1
Xft.hinting: 1
EOF
cat latihan-hidpi/.XresourcesOutput yang Dihasilkan:
Xft.dpi: 192
Xft.antialias: 1
Xft.hinting: 1Nilai Xft.dpi: 192 menggandakan DPI standar 96 sehingga font toolkit menggambar dua kali lebih besar; baris antialias dan hinting mengatur kualitas tepi huruf, pembahasan yang kita perdalam pada Chapter Font Management. Berkas ini dimuat dengan xrdb -merge ~/.Xresources dari .xprofile, atau xrandr --dpi 192 untuk kepadatan seluruh sesi.
Sesi Wayland mengurus ulang semua ini dengan lebih baik, sebagaimana dibahas pada Chapter Display Server dan Wayland
. Compositor menghitung dalam piksel logika sehingga fractional scaling seperti 150% bekerja tanpa hack, dan aplikasi menggambar buffer sesuai skalanya. Alatnya mengikuti compositor: panel Displays pada GNOME dan Plasma, atau wlr-randr --output DP-1 --scale 2 pada compositor keluarga wlroots seperti Sway. Dukungan penskalaan tiap DE dirangkum di halaman HiDPI ArchWiki
.
Masalah yang tersisa biasanya sederhana: monitor eksternal gelap padahal statusnya connected berarti kabel atau mode yang ditolak; resolusi yang diinginkan tidak muncul berarti EDID monitor gagal terbaca, yang bisa dijawab modeline hasil cvt. Setelah piksel beres, elemen berikutnya yang menentukan kenyamanan membaca adalah hurufnya sendiri — kita kelola font dengan fontconfig pada Chapter Font Management.