Gunakan perintah xrandr untuk menanyakan dan mengatur resolusi layar, dan output dapat diurai dengan awk untuk mendapatkan resolusi saat ini, seperti xrandr | awk -F'[ +]’ ‘/primary/{print $4}’Perintah xdpyinfo memberikan informasi rinci tentang layar, dan awk dapat digunakan untuk mengisolasi garis dengan resolusi saat ini, dan dengan sedikit manipulasi lagi, Anda dapat ekstrak resolusi X dan Y sebagai variabel.
Jika Anda ingin mengetahui resolusi layar Anda saat ini di komputer Linux, Anda memiliki beberapa perintah untuk dipilih. Terkadang berguna untuk menggabungkan fungsi tersebut dalam skrip Bash.
Mengapa Mengubah Resolusi Layar Anda
Terkadang Anda perlu mengetahui resolusi layar Anda sebelum skrip Anda meluncurkan aplikasi atau melakukan pemrosesan lebih lanjut. Anda mungkin perlu meneruskan resolusi sebagai parameter baris perintah ke aplikasi yang akan Anda luncurkan, atau Anda mungkin telah mengatur ulang resolusi dan ingin memeriksa apakah perubahan resolusi berhasil.
Menurunkan resolusi adalah trik yang dapat membuat memainkan beberapa game pada perangkat keras yang lebih lama dan kurang bertenaga. Mengubah resolusi bolak-balik secara manual akan segera melelahkan, jadi jawaban yang jelas adalah melakukannya dari dalam skrip.
Perintah yang akan kita lihat diinstal sebagai standar pada semua distribusi yang kami periksa, jadi seharusnya tidak ada menjadi kebutuhan untuk menginstal apa pun. Anda dapat langsung menggunakan teknik ini, dan skrip Anda harus portabel di berbagai distribusi.
Menggunakan Perintah xrandr
Perintah xrandr dapat digunakan untuk mengatur dan menanyakan resolusi layar. Secara default, tanpa parameter, ini menghasilkan daftar mode video yang didukung oleh layar Anda, atau layar.
xrandr
Mode video pilihan diikuti dengan tanda tambah “+”, dan mode video saat ini diikuti dengan tanda bintang “* ”.
Layar ini hanya memiliki satu mode video pilihan, dan itu adalah mode video saat ini. Meskipun Anda dapat memiliki beberapa mode pilihan, hanya ada satu mode saat ini. Itu berarti jika kita dapat menemukan garis dengan tanda bintang di dalamnya, kita dapat menentukan pengaturan mode video saat ini.
Anda mungkin melihat contoh online di mana mereka melakukan hal ini. Mereka menggunakan grep untuk menemukan baris dengan tanda bintang di dalamnya, dan kemudian menggunakan sed atau awk untuk menguraikan informasi yang kami minati.
Tetapi ada cara yang lebih sederhana. Informasi dalam keluaran dari xrandr berisi rincian layar “utama yang terhubung”, termasuk resolusi mode video saat ini. Kita bisa menggunakan awk untuk menguraikannya, tanpa menggunakan grep sama sekali.
xrandr | awk -F'[ +]''/primary/{print $4}'
Begini cara kerjanya. Kami menggunakan opsi -F (pemisah bidang) untuk memberi tahu awk bahwa spasi dan tanda tambah “+” harus diperlakukan sebagai pembatas bidang. Kami sedang mencari baris dengan kata “utama” di dalamnya. Kata ini dipilih karena muncul di baris yang kami minati, dan tidak muncul di mana pun di output dari xrandr.
Membagi baris tersebut menjadi bidang-bidang di spasi dan tanda plus “+” berarti resolusi saat ini terletak di bidang empat.
Kami menggunakan perintah awk print untuk mencetak bidang keempat. Karena kami juga membagi bidang pada tanda plus, “+0+0” dipotong di bagian belakang resolusi, menjadi bidang lima dan enam. Kami tidak tertarik dengan itu.
Menggunakan Perintah xdpyinfo
Secara default, perintah xdpyinfo menampilkan banyak informasi tentang layar Anda dan mode video yang tersedia. Ini menghasilkan lebih dari 1000 baris keluaran pada mesin pengujian kami.
xdpyinfo
Mode saat ini dijelaskan lebih detail daripada mode lain yang tersedia. Baris yang menjelaskan resolusi mode saat ini mencakup kata “dimensi.” Kata tersebut tidak muncul di tempat lain pada output, sehingga kita dapat menggunakannya untuk mengisolasi baris yang diinginkan, menggunakan awk.
xdpyinfo | awk '/dimensions/ {print $2}'
Ini adalah perintah yang lebih sederhana daripada yang kita gunakan dengan xrandr, karena kita tidak perlu menentukan pembatas bidang apa pun. awk secara default menggunakan spasi sebagai pembatas bidang, dan hanya itu yang harus kita hadapi dalam keluaran dari xdpyinfo. Resolusi adalah kolom kedua pada baris keluaran, dan {print $2} menuliskannya ke jendela terminal untuk kita.
Memasukkannya ke dalam Skrip
Menggunakan salah satu teknik ini dalam skrip memerlukan sedikit usaha ekstra. Kita perlu memiliki variabel untuk menampung resolusi yang kita temukan sehingga kita dapat membuat penilaian dalam skrip kita tentang apakah resolusi tersebut harus melanjutkan pemrosesan atau keluar jika resolusi layar saat ini tidak memenuhi kebutuhan khususnya.
Salin baris ini ke editor , simpan file sebagai “get_res.sh”, lalu tutup editor Anda.
#!/bin/bash current_res=$(xdpyinfo | awk '/dimensions/ {print $2}') echo $current_res
Kita harus membuat skrip dapat dieksekusi menggunakan perintah chmod.
chmod +xget_res.sh
Ini menetapkan output dari perintah awk ke variabel bernama current_res, dan menggemakan nilai variabel tersebut ke jendela terminal. Mari kita jalankan skripnya.
./get_res.sh
Yang menggembirakan, kita melihat hasil yang sama seperti yang kita lakukan saat menjalankan perintah di jendela terminal secara manual.
Memisahkan Resolusi X dan Y
Jika ingin memisahkan resolusi X dan Y, kita bisa tambahkan beberapa baris untuk melakukan hal itu. Salin baris ini ke editor Anda, simpan file sebagai get_x_y.sh, dan tutup editor Anda.
#!/bin/bash current_res=$(xdpyinfo | awk '/dimensions/ {print $2}') current_x=$(echo $current_res | awk -F'[ x]''{print $1}') current_y=$(echo $current_res | awk -F'[ x]''{print $2}') echo $current_res echo $current_x echo $current_y
Kita dapat menggunakan awk untuk ekstrak resolusi X dari nilai yang disimpan dalam variabel current_res, dan simpan hasilnya dalam variabel bernama current_x. Kami mengulangi proses untuk mengekstrak resolusi Y, dan menetapkannya ke variabel bernama current_y. Terakhir, kita mencetak ketiga variabel.
Sekali lagi, kita perlu menggunakan chmod untuk membuatnya dapat dieksekusi.
chmod +xget_x_y.sh
Berikut adalah keluaran dari skrip pada mesin pengujian kita.
./get_x_y.sh
Memiliki resolusi X dan Y sebagai variabel individual memungkinkan Anda membuat perbandingan pada setiap dimensi. Mungkin hanya resolusi horizontal yang penting bagi Anda, dan selama memenuhi atau melebihi minimum, skrip Anda dapat melanjutkan.
Mampu mengisolasi resolusi vertikal dan horizontal memungkinkan Anda menguji salah satu dari resolusi tersebut, atau keduanya, untuk memastikan skrip Anda yang sensitif terhadap resolusi dapat dilanjutkan. Ini juga memungkinkan Anda menggunakan nilai sebagai parameter baris perintah untuk aplikasi lain yang perlu diluncurkan dengan informasi tersebut. Nbsp
Mendapatkan nilai-nilai ini tidak perlu berbelit-belit. Bahkan sedikit pengetahuan tentang utilitas Linux standar seperti awk akan membayar kembali waktu yang dihabiskan untuk mempelajarinya, berkali-kali lipat.