Kategoriler
Anlatım Linux

Xrandr Komutu ile Ekran Çözünürlüğü Ayarlama

Esselamu Aleyküm ve Rahmetullah,

Geçtiğimiz günlerde bilgisayarımda bir sorun oldu. Bilgisayarımda Nvidia ekran kartı var ve Optimus teknolojisine sahip. Kısaca bilgi verecek olursam, bu teknoloji sayesinde istediğim programları harici ekran kartında çalıştırabiliyorum. Avantajı ne? Görsel olarak bilgisayarı yoracak işlemleri harici ekran kartı üzerinde yaparak performansı artırıyorum. Bunun dezavantajı pili çok kullanıyor olması. Eğer basit görsel işlemler yapıyorsam, örneğin yazı yazmak, metin okumak gibi, karmaşık görüntü işlemleri yapmadığım için ekran kartına ihtiyacım olmuyor ve dahili ekran kartı üzerinden işimi halledebiliyorum. Böylece daha az pil harcamış oluyorum. Hem de performans kaybım olmuyor.

Konumuza geri dönelim. Nvidia Linux dağıtımları için bu teknolojinin yazılım desteğini sağlamıyor. Geçtiğimiz yıllarda bir proje çıktı. Adı Bumblebee. Transformers ‘taki Bumblebee bu. Teknolojinin adı Optimus olunca, bu desteği linux için veren yazılımın adını Bumblebee koymuşlar. Başta sadece bir kişi uğraşıyordu. Şimdilerde ilgilenenlerin sayısı epey artmış. Hatta Ironhide diye bir kol daha çıktı. Bu kol ile projeyi ilk başlatan kişi ilgileniyor. Diğer grup Bumblebee’yi geliştirmeye devam ediyor.

Bende bu özelliği bilgisayarımda kullanabilmek için bu açık kaynak yazılımı yükledim. Lakin bir sorun oldu ve birden ekranımın çözünürlüğü 640×480’e düştü. Ayarlardan düzeltmeye çalıştım olmadı çünkü sadece 640×480 çözünürlüğe izin veriyordu. Yazılımı sildim, tekrar yükledim. Başka denemeler yaptım ama bir türlü düzeltemedim. En sonunda ekran çözünürlüğünü tekrar ayarlama kodunu araştırmaya başladım.

Yaptığım araştırmalar sonucunda bu işi Ubuntu’nun versiyonlarında xrandr komutunun yaptığını öğrendim. Aşağıdaki kodu kendinize uyarlayarak sizde seçeneklerin dışındaki ekran çözünürlüklerini elde edebilirsiniz. Burada dikkat etmeniz gereken bir şey var. Çözünürlük sadece o oturum için geçerli. Eğer bilgisayarı kapatırsanız, yeniden başlatırsanız veya oturumu kapatırsanız bu ayar gider. Eğer her seferinde bilgisayarın kodu otomatik olarak çalıştırmasını istiyorsanız o zaman kodu .sh uzantılı bir dosyaya yazarak başlangıçta çalıştırılacak şekilde ayarlama yapmanız lazım.

Son olarak bir şey daha var. Kod otomatik değil. Acelem olduğu için modüler olarak yazamadım. Şimdilik buradan bakarak kendi bilgisayarınıza uygulayın. İlk fırsatta her bilgisayar için uyumlu bir hale getireceğim inşaallah.

#!/bin/sh
# ekran çözünürlüğü hakkında bilgi almak için
# cvt en boy yazarak gerekli bilgileri al
echo "getting resolution information..."
cvt 1366 768
# yeni ekran çözünürlük modu oluşturmak için
# yukarıdaki komut sonucunda dönen yazıdan
# Modeline kısmından sonraki kısmı kopyala
# xrandr --newmode yazıp konsola kopyaladığın
# kısmı yapıştır
echo "creating new mode..."
xrandr --newmode "1366x768" 85.25 1366 1440 1576 1784 768 771 781 798 -hsync +vsync
# yeni ekran çözünürlük modunu sisteme eklemek için
# xrandr --addmode yazıp monitör ismini ekrana yaz
# ben laptopda çalıştığım için LVDS1 yazdım
# monitör adından sonra Modeline kısmından sonra
# yazan tırnak içindeki mod adını kopyala
# monitör adından sonra boşluk bırakarak yapıştır
echo "adding it to the system..."
xrandr --addmode LVDS1 "1366x768"
# yeni oluşturduğun ekran çözünürlüğüne geçmek için
# xrandr --output LVDS1 --mode yazıp mod adını da
# ekleyerek ekranı dinamik olarak tekrar ayarla
echo "switching to new mode..."
xrandr --output LVDS1 --mode "1366x768"
echo "WELL DONE!"
notify-send -t 1000 "Resolution mode was changed!"

İnşaallah yardımcı olmuştur. Başka bir anlatımda görüşmek dileğiyle,

Allah ‘a emanet olun (: